Example #1
0
File: p293.py Project: fazz/soft
def genadmissible(number, pos, result):
	while True:
		number = number*primes[pos]
		if number >= limit:
			return
		result.append(number)
		print tools.primefactorization(primes, number, 32000)
		genadmissible(number, pos+1, result)
Example #2
0
File: p39.py Project: fazz/soft
def iscoprime(a, b):
	(f1, c1) = tools.primefactorization(primes, a, 1000)
	(f2, c2) = tools.primefactorization(primes, b, 1000)
	c = set()
	for i in f1:
		c.add(i)
	for i in f2:
		c.add(i)
	if len(c) == len(f1)+len(f2):
		return True
	return False
Example #3
0
File: p95.py Project: fazz/soft
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
Example #4
0
File: p77.py Project: fazz/soft
def c(n):
	result = 0

	(f, c) = tools.primefactorization(primes, n, 1000000)

	for ff in f:
	 	result += ff

	return result
Example #5
0
File: p70.py Project: fazz/soft
def totient_(n):
	if tools.isprime(n):
		return n-1
	
	(f, c) = tools.primefactorization(primes, n, 1000000)

	p = n
	for f1 in f:
		p *= (f1-1.0)/f1

	p = int(p)

	return p
Example #6
0
File: p72.py Project: fazz/soft
def totient_(n):
	if tools.isprime(n):
		return n-1
	
	(f, c) = tools.primefactorization(primes, n, 1000000)

	fc = 0
	for i in range(len(f)):
		fc += f[i]*c[i]
#	print "fc:", fc, len(f), f, c

	p = n
	for f1 in f:
		p /= f1
		p *= f1-1

	return p
Example #7
0
File: p95.py Project: fazz/soft
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

	pdsum = sumofproperdivisors(i)
Example #8
0
File: p70.py Project: fazz/soft
pri = 0
for i in range(len(p2)):
	if p2[i] < 5000000:
		pri = i
		break

pi = 0

while primes[pi] < p2[pri]:
	n = primes[pi]*p2[pri]
	while n < 10000000:
		t = (primes[pi]-1)*(p2[pri]-1)
		if ispermutation(n, t):
			if minrel > n*1.0/t:
				minrel = n*1.0/t
				minn = n
				minprimes = (primes[pi],p2[pri])
		pi += 1
		n = primes[pi]*p2[pri]
	pri += 1
	pi = 0
#	while primes[pi]*p2[pri] >= 10000000:
#	  pi -= 1
		
print minn, totient(minn), minrel, minprimes

print tools.primefactorization(primes, 8319823, 1)


Example #9
0
File: p75.py Project: fazz/soft
		if tools.gcd(m, n) == 1:
			p += 1
			x = 2*m*(m+n)
			if x in ps:
				ds.add(x)
			ps.add(x)
			
while i <= limit:
	
	j = i/2

	if tools.isprime(j):
		i += 2
		continue

	(f, c) = tools.primefactorization(primes, j, 1000000)
	if len(f) < 2:
		i += 2
		continue

	if f[0] == 2:
		c[0] += 1
	else:
		f.append(2)
		c.append(1)

	# P = z * 2 * m * (m + n)
	# m > n
	# m%2 != n%2
	# gcd(m, n) = 1
	# lahendub ainult yhel moel
Example #10
0
File: p214.py Project: fazz/soft
p2.reverse()

factorcache = {}
for pi in range(len(primes)):
#for pi in []:
	p = primes[pi]
	if p == 2:
		continue
	if p>=limit:
		continue
	if p<2**23:
		continue
	if not pi%1000:
		print "p:", p

	(f, c) = tools.primefactorization(primes, p-1, factorcache)

	d = {}

	for i in range(len(f)):
		d[f[i]] = c[i]

	while True:
		mk = max(d.keys())
		if mk <= 7:
			break
		(f, c) = tools.primefactorization(primes, mk-1, factorcache)
		for i in range(len(f)):
			d.setdefault(f[i], 0)
			d[f[i]] += c[i]