Advertisement
Guest User

Untitled

a guest
Apr 3rd, 2020
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.00 KB | None | 0 0
  1. def find_divisors(num):
  2.     if num == 1:
  3.         return 1
  4.     simple = [2,3,5,7,11,13,17,19,23,31,37]
  5.     working = [num]
  6.     new = []
  7.     final = [1,num]
  8.     while True:
  9.         added = False
  10.         for x in working:
  11.             simple_div = [z for z in simple if x % z == 0]
  12.             for y in simple_div:
  13.                 n = x / y
  14.                 new.append(n)
  15.         for n in set(new):
  16.             if n not in final:
  17.                 final.append(int(n))
  18.                 added = True
  19.         working = list(map(int,set(new)))
  20.         new = []
  21.         if added is False:
  22.             break
  23.     for n in final:
  24.         some_num = num / n
  25.         if some_num not in final:
  26.             final.append(int(some_num))
  27.     return sum(x*x for x in final)
  28.  
  29.  
  30. def list_squared(m, n):
  31.     import math
  32.     whole = []
  33.     for x in range(m,n+1):
  34.         number = find_divisors(x)
  35.         if int(math.sqrt(number)) * int(math.sqrt(number)) == number:
  36.             whole.append([x,number])
  37.     return whole
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement