import prime_list as pl from numpy import abs import collections prime_list = pl.get_prime_list(10000) max_prime = max(prime_list) min_prime = -max_prime minus_prime_list = [-num for num in prime_list] prime_list.extend(minus_prime_list) prime_dict = collections.defaultdict(int) for num in prime_list: prime_dict[num] = 1 def max_length(a, b): result = 0 for n in xrange(b): tmp = n**2+a*n+b assert(tmp < max_prime) assert(tmp > min_prime) if prime_dict[tmp]==1 : result += 1 else: return result return result print max_length(1, 41) print max_length(-79, 1601) result = 0 product_max = 0 for a in xrange(-999, 1000): for b in xrange(-999, 1000):
from prime_list import get_prime_list primeList = get_prime_list(100) result = {} def list_all_factor(number, result): for i in primeList: if number%i==0: result[i]=result.get(i, 0) + 1 list_all_factor(number/i, result) break else: pass return result print (list_all_factor(28,result)) def total_div(dict_type): result = 1 for i in dict_type.keys(): result *= (dict_type[i]+1) return result print total_div(list_all_factor(30, {})) def triangular_number(n): return (1+n)*n/2 for i in xrange(1, 100000): tmp = triangular_number(i)
from prime_list import get_prime_list from collections import defaultdict import numpy as np prime_list = get_prime_list(2000) dict_result = defaultdict(int) #dict_result[1] = 1 def proper_divisor(number): if number == 1: return None for prime in prime_list: if prime==number: dict_result[prime] +=1 return None if number%prime==0: dict_result[prime] += 1 print number proper_divisor(number/prime) return None def proper_divisor_calculate(number): result = 1 for i in xrange(2,number): if number%i == 0: result += i return result def check_amicable(number1): number2 = proper_divisor_calculate(number1) if proper_divisor_calculate(number2) == number1 and number2!=number1: