def max_square_pair(a, b, index, assignments, isdigitused): if index == len(a): if a[0] in assignments and assignments[a[0]] == 0 or \ b[0] in assignments and assignments[b[0]] == 0: return 0 anum = 0 bnum = 0 for (x, y) in zip(a, b): anum = anum * 10 + assignments[x] bnum = bnum * 10 + assignments[y] if eulerlib.is_square(anum) and eulerlib.is_square(bnum): return max(anum, bnum) else: return 0 elif a[index] in assignments: return max_square_pair(a, b, index + 1, assignments, isdigitused) else: result = 0 for i in range(10): if not isdigitused[i]: isdigitused[i] = True assignments[a[index]] = i result = max( max_square_pair(a, b, index + 1, assignments, isdigitused), result) del assignments[a[index]] isdigitused[i] = False return result
def max_square_pair(a, b, index, assignments, isdigitused): if index == len(a): if a[0] in assignments and assignments[a[0]] == 0 or \ b[0] in assignments and assignments[b[0]] == 0: return 0 anum = 0 bnum = 0 for (x, y) in zip(a, b): anum = anum * 10 + assignments[x] bnum = bnum * 10 + assignments[y] if eulerlib.is_square(anum) and eulerlib.is_square(bnum): return max(anum, bnum) else: return 0 elif a[index] in assignments: return max_square_pair(a, b, index + 1, assignments, isdigitused) else: result = 0 for i in range(10): if not isdigitused[i]: isdigitused[i] = True assignments[a[index]] = i result = max(max_square_pair(a, b, index + 1, assignments, isdigitused), result) del assignments[a[index]] isdigitused[i] = False return result
def is_perfect_square(x): # Optional optimization: Check if x is a quadratic residue modulo some number. # The modulus was chosen to be a product of k primes; in this case, k = 5. # If x is a square, then it must be a quadratic residue modulo each prime. # For each prime p, there is an approximately half chance that an arbitrary number # is a residue mod p. Thus with 5 primes, only about 1/32 of candidates remain. # Note that the prime 2 tells us nothing about whether x is a square, so we exclude it. return isresidue[x % RESIDUE_TEST] and eulerlib.is_square(x)
def foo(): num = 600851475143 is_sq, sqrt = is_square(num) primes_list = primes(sqrt + 1) for x in reversed(primes_list): if num % x == 0: print x return print num
def compute(): ans = None maxx = 0 for n in range(2, 1001): if eulerlib.is_square(n): continue x = smallest_solution_x(n) if x > maxx: ans = n maxx = x return str(ans)
from eulerlib import is_square, primes (is_sq, sqroot) = is_square(600851475143) p = primes(sqroot + 1) for i in range(0, len(p) + 1): j = 0 - i if 600851475143 % p[j] == 0: print(p[j]) break
def compute(): ans = sum(1 for i in range(1, 10001) if ( not eulerlib.is_square(i) and get_sqrt_continued_fraction_period(i) % 2 == 1)) return str(ans)
def compute(): ans = max((n for n in range(2, 1001) if (not eulerlib.is_square(n))), key=smallest_solution_x) return str(ans)
def compute(): ans = sum(1 for i in range(1, 10001) if (not eulerlib.is_square(i) and get_sqrt_continued_fraction_period(i) % 2 == 1)) return str(ans)
def no_of_divisor(n): (is_perfect_square, sqroot) = eulerlib.is_square(n) count = sum(2 for i in range(1, sqroot + 1) if n % i == 0) count = count - 1 if is_perfect_square else count # this is because 4*4 =16, we will end up counting 4 twice. return count