Exemple #1
0
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)
Exemple #4
0
	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)
Exemple #5
0
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
Exemple #6
0
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)
Exemple #7
0
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
Exemple #8
0
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)
Exemple #9
0
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 = 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)
Exemple #12
0
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