Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def find_divisors(num):
- if num == 1:
- return 1
- simple = [2,3,5,7,11,13,17,19,23,31,37]
- working = [num]
- new = []
- final = [1,num]
- while True:
- added = False
- for x in working:
- simple_div = [z for z in simple if x % z == 0]
- for y in simple_div:
- n = x / y
- new.append(n)
- for n in set(new):
- if n not in final:
- final.append(int(n))
- added = True
- working = list(map(int,set(new)))
- new = []
- if added is False:
- break
- for n in final:
- some_num = num / n
- if some_num not in final:
- final.append(int(some_num))
- return sum(x*x for x in final)
- def list_squared(m, n):
- import math
- whole = []
- for x in range(m,n+1):
- number = find_divisors(x)
- if int(math.sqrt(number)) * int(math.sqrt(number)) == number:
- whole.append([x,number])
- return whole
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement