Newbie - Trying to Help a Friend

Duncan Booth duncan.booth at invalid.invalid
Wed Nov 20 12:38:14 CET 2013


Denis McMahon <denismfmcmahon at gmail.com> wrote:

> 1) Find all the numbers less than n that are not divisible by a, b, or c.
> 
> ask the user for x;
> assign the value 0 to some other variable i;
> while i is not greater than than x do the following [
> if i is not divisible by a and i is not divisible by b and i is not 
> divisible by c then display i to the user;
> add 1 to i;
> ]
> 
The question didn't ask to find all the numbers, it asked to count how many 
there are. Also even if you change this to count instead of print, it could 
be very inefficient for large values of x.

If x is greater than a*b*c, find how many numbers up to a*b*c are not 
divisible by a, b, or c. (Depending on your interpretation of the English 
language for 2, 3, 5 this is either 8 or 1, you could check whether the 
system is set to Australian English to determine the correct action here.) 
You may then store these numbers in a list for easy reference.

Now the answer you want is the length of that list times the integer part 
of x divided by a*b*c plus the number of values in the list that are less 
than the remainder you get when dividing x by a*b*c.

If x is less than a*b*c then just find how many numbers up to x are not 
divisible by a, b, or c, which would be a case of re-using some of the 
above code.

For extra credit, calculate and use the least common multiple of a,b and c 
instead of just using their product.

-- 
Duncan Booth 



More information about the Python-list mailing list