コード例 #1
0
ファイル: p95.py プロジェクト: fazz/soft
import tools

primes = []

def sumofproperdivisors(input):
	(f, c) = tools.primefactorization(primes, input, 1000000)

	sumofdivisors = 1
	for i in range(len(f)):
		sumofdivisors *= (f[i]*f[i]**c[i]-1)/(f[i]-1)

	return sumofdivisors-input

tools.genprimes(primes, 1000000)

print sumofproperdivisors(589786)
print tools.primefactorization(primes, 589786, 1000000)

longestchain = 0
minmember = 0
ignore = set()

print 'start'
for i in range(4, 1000000):
	if not i%200:
		print "i:", i, len(ignore), longestchain, minmember
	if tools.isprime(i):
		continue
	if i in ignore:
		continue
コード例 #2
0
ファイル: p23.py プロジェクト: fazz/soft
nonabundants = set()
abundants = set()
def isabundant(i):
	if i in abundants:
		return True
	if i in nonabundants:
		return False

	if i < sumofproperdivisors(i):
		abundants.add(i)
		return True

	nonabundants.add(i)
	return False

tools.genprimes(primes, 28124)

output = sum(range(1, 24))

for i in range(25, 28124):
	found = False
	for j in range(12, i/2+1):
		k = i-j
		if isabundant(k) and isabundant(j):
			found = True
			break
	
	if not found:
		print i
		output += i
コード例 #3
0
ファイル: genprimes.py プロジェクト: fazz/soft
import tools

primes=[]

tools.genprimes(primes, 40000000)

for p in primes:
	print p

コード例 #4
0
ファイル: p3.py プロジェクト: fazz/soft
import tools
from math import sqrt

value = 600851475143
newvalue = value
result = 1

primes = []

tools.genprimes(primes, 5000)

while True:
	divided = False
	for i in primes:
		if not newvalue%i:
			newvalue /= i
			if i > result:
				result = i
			divided = True

	if not divided:
		break

print value, newvalue

tools.genprimes(primes, newvalue)

l = len(primes)
for i in range(1, len(primes)+1):
	if not newvalue % primes[l-i]:
コード例 #5
0
ファイル: p10.py プロジェクト: fazz/soft
import tools

primes = []

tools.genprimes(primes, 1999999)

if primes[len(primes)-1] >= 2000000:
	primes = primes[0:len(primes)-1]

result = sum(primes)

print result