def generator251v5(n): count = 0 for l in range(1,int((n + 1)/6) + 1): a = 3*l - 1 # Need all the prime factors of l**2(8*l - 3) factors = primeFactors(l) factors += factors factors += primeFactors(8*l-3) factorsOfb = [0]*len(set(factors)) listOfPrimes = [0]*len(set(factors)) for index,p in enumerate(set(factors)): factorsOfb[index] = factors.count(p)//2 listOfPrimes[index] = p latticeCube = cube(factorsOfb) for vector in latticeCube: b = 1 for index, p in enumerate(listOfPrimes): b *= p**vector[index] c = (8*l**3 - 3*l**2) / b**2 if a + b + c <= n: count += 1 return count
def possibleFactorsForb(l): # build a list of all possible factors of b factors = primeFactors(8*l**3 - 3*l**2) for p in set(factors): count = factors.count(p) while count > 1: factorsOfb.append(p**count) count -= 2 return factors