Newbie - Trying to Help a Friend
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Wed Nov 20 01:17:23 CET 2013
On Tue, 19 Nov 2013 10:40:18 -0800, bradleybooth12345 wrote:
> Hi,
>
> A Friend is doing maths in University and has had some coursework to do
> with python.
>
> The question is
>
> "Write a program that calculates how many positive integers less than N
> are not divisible by 2,3 or 5. The user should be prompted to supply the
> Number N. Demonstrate your program output when the input N is your
> student id. (13006517)
Have your friend start by writing down how she or he would solve this
problem by hand. I'll get you started by solving the problem for 7.
Positive integers less than 23 are 1, 2, 3, 4, 5, 6. So let's start
checking them for divisors:
- 1 is not divisible by 2, 3 or 5, so we count one number.
- 2 is divisible by 2, but not by 3 or 5, so we count two numbers.
- 3 is not divisible by 2, so we count three numbers.
- 4 is divisible by 2, but not 3 or 5, so we count four numbers
- 5 is not divisible by 2, so we count five numbers.
- 6 is divisible by 2 and 3, but not by 5, so we count six numbers.
And the answer is: 6.
Now that you know what you yourself would do to solve this problem, the
next step is to write it in terms that a computer can understand. A few
hints:
1) You can check divisibility by using the % operator, which returns the
remainder after division. So 36 % 6 gives 0, which means that 36 is
divisible by 6. 37 % 6 gives 1, which means 37 is not divisible by 6.
2) You can use "for i in range(1, N)" to generate the positive integers
less than N.
3) You can use the "or" operator to efficiently check multiple
conditions. For example, this line of code:
if (a % 2) or (a > 16):
checks whether a number a is either an odd number or larger than sixteen,
and if so runs the indented block of code following (not shown).
4) You can prompt the user for a value using the input (Python 3) or
raw_input (Python 2) function. For example, using Python 2:
result = raw_input("Enter a number between 3 and 12: ")
lets the user type in anything in response. That result will be a string,
to convert it to a number:
result = int(result)
5) You can create a variable and initialise it to some value like this:
count = 0
creates a variable called "count", set to the value 0. You can then add
one to it like this:
count = count + 1
or if you prefer:
count += 1
Either way adds one to count.
I expect that the above should be enough to get your friend started and
possibly even finished. If she/he gets stuck, come back with some code
and specific questions.
Good luck!
--
Steven
More information about the Python-list
mailing list