def radical(n): D=factoriza(n) return reduce(mul, D.keys(), 1)
def IsSquareFree(n): F = factoriza(n) for p in F: if F[p]>1: return False return True
from aritmetica import ListaPrimos from aritmetica import ConjuntoPrimos from aritmetica import factoriza from itertools import count da=factoriza(600) db = factoriza(601) dc = factoriza(602) de = factoriza(603) e=603 for n in count(604): da=db db=dc dc=de de=factoriza(n) #print (n, len(da), len(db), len(dc), len(de)) if len(da)==4 and len(db)==4 and len(dc)==4 and len(de)==4: print "\n",(n-3,n-3,n-1,n) break
from aritmetica import factoriza from operator import mul from fractions import gcd def radical(n): D=factoriza(n) return reduce(mul, D.keys(), 1) T1 = time.time() S=0 k = 0 hits = [] for c in xrange(3,5000): for b in xrange((c+1)//2,c): # b tiene que ser mayor o igual a la mitad de c para que a<b #if gcd(b,c)!=1 : continue a = c-b # a + b = c Pa = set(factoriza(a).keys()) Pb = set(factoriza(b).keys()) Pc = set(factoriza(c).keys()) pgcd= Pa & Pb if len(pgcd)==0: rad = reduce(mul, Pa | Pb | Pc ,1) if rad < c: k=k+1 S=S+c #hits.append(c) print k,S T3 = time.time() print T3-T0, T3-T1