コード例 #1
0
ファイル: problem_27.py プロジェクト: JuDa-hku/ACM
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):
コード例 #2
0
ファイル: problem_12.py プロジェクト: JuDa-hku/ACM
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)
コード例 #3
0
ファイル: problem21.py プロジェクト: JuDa-hku/ACM
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: