[Tutor] Question Regarding Quiz Material
Nick Yim
theoldny at gmail.com
Tue Jun 1 22:19:05 EDT 2021
Hey!
Thanks a lot Marc, this clarifies.
Best,
Nick Y.
On Tue, Jun 1, 2021 at 9:46 PM Marc Tompkins <marc.tompkins at gmail.com>
wrote:
> On Tue, Jun 1, 2021 at 7:21 AM Nick Yim <theoldny at gmail.com> wrote:
>
>> I am wondering why the numbers - n = 3, n = 36, n 102 - are not included
>> in
>> the list of divisors?
>>
>> This line:
> while n!=0 and x<n:
> specifies that x (the divisor you're checking) MUST be smaller than your
> original number. If you want to include the original number as its own
> divisor, change it to
> while n!=0 and x<=n:
>
>> As well, why is the number 1 included as a divisor of 3 and 36, but not as
>> a divisor of 102?
>>
>
> It _is_ included as a divisor of 102; I think your addition is off.
>
> A small modification to your script will make things a bit clearer:
>
> def sum_divisors(n):
> x = 1
> #trying all the numbers from 1, because you cannot divide by 0
> sum = 0
> divisors = []
> #adding to 0
> while n!=0 and x<n:
> #conditions for n to have divisors (not be 0) and for x to be a
> potential divisor
> #error because the answer does not include the number itself
> if n%x == 0:
> sum += x
> divvs.append(x)
> x +=1
> return (n, divisors, sum)
>
> print(sum_divisors(0))
> # 0
> print(sum_divisors(3)) # Should sum of 1
> # 1
> print(sum_divisors(36)) # Should sum of 1+2+3+4+6+9+12+18
> # 55
> print(sum_divisors(102)) # Should be sum of 2+3+6+17+34+51
> # 114
>
>>
>>
More information about the Tutor
mailing list