Python Forum
I need help to solve this task using while statement - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: Homework (https://python-forum.io/forum-9.html)
+--- Thread: I need help to solve this task using while statement (/thread-24938.html)



I need help to solve this task using while statement - rico4pepe - Mar-11-2020

def sum_divisors(n):
  sum = 0
  # Return the sum of all divisors of n, not including n
  return 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



RE: I need help to solve this task using while statement - micseydel - Mar-11-2020

What have you tried? We'd be happy to help, but we need to see some effort for you (we're not going to do your homework for you).


RE: I need help to solve this task using while statement - ibreeden - Mar-11-2020

First question: how do you find the divisors of a number? Hint: do you know the modulo operator?


RE: I need help to solve this task using while statement - Pranav - Mar-18-2020

Try using the following steps.

Within the function declare a variable k and check the condition within the while loop.

  k=1
  while(k<(n-1)): 
      .....step1
      .....step2
      k+=1

STEP1:
Using modulo operator check if the variable k is a multiple of n.
STEP2:Increment the value of k every time to another variable(sum) if the above condition is True.


RE: I need help to solve this task using while statement - pyzyx3qwerty - Mar-18-2020

first, you need to find the divisors of the number by using the modulo operator
use a for loop to make sure that divisor is less than the number
then inside the for loop make a while loop for every number less than the original one, and is divisible by it
inside the while loop, then print a statement to find the sum of all divisors


RE: I need help to solve this task using while statement - Jaikanth - Apr-01-2020

try this

def sum_divisors(n):
    sum=1
    x=int(n**0.5)
    for i in range(2,(x//1)+1):
        if n%i==0:
            sum=sum+i
        if n%i==0 and n/i!=i:
            sum=sum+(n/i)            
    return int(sum)



RE: I need help to solve this task using while statement - pyzyx3qwerty - Apr-02-2020

(Apr-01-2020, 08:38 PM)Jaikanth Wrote: try this

def sum_divisors(n):
    sum=1
    x=int(n**0.5)
    for i in range(2,(x//1)+1):
        if n%i==0:
            sum=sum+i
        if n%i==0 and n/i!=i:
            sum=sum+(n/i)            
    return int(sum)
This is a homework problem, you aren't supposed to write code for others