示例#1
0
	for i in xrange(1, len(digits)):
		a = EulerUtils.getNumFromDigits(digits[:i])
		b = EulerUtils.getNumFromDigits(digits[i:])
	#	print "%s:" % num
		if isPrime(a) and isPrime(b):
			if isPrime( EulerUtils.concat(b,a) ):
	#			print "\t%s, %s" % (a,b)
				pair = tuple(sorted((a,b)))
				if not pair in pairs:
					#sortedList.sorted_add(pairs, pair)
					pairs.append(pair)
	#print
"""
num = 7109
can_split_into_primes(num)
"""
def main():
	for num in primes:
		can_split_into_primes(num)
	print len(pairs)

if __name__ == '__main__':
	print EulerUtils.timeit(main)
	"""
	for a in xrange(len(primes)):
		for b in xrange(a+1, len(primes)):
			for c in xrange(b+1, len(primes)):
				for d in xrange(c+1, len(primes)):
					print primes[a], primes[b], primes[c], primes[d]
	"""
示例#2
0
import EulerUtils

def buildFactTable(size):
	factTable = [1,1]
	for n in xrange(2, size):
		factTable.append(n*factTable[n-1])
	return factTable

def nCr(n,r,factTable):
	return factTable[n]/(factTable[r]*factTable[n-r])

def main(size):
	count = 0
	factTable = buildFactTable(size)
	for n in xrange(1,size):
		for r in xrange(1,n+1):
			if nCr(n,r,factTable) > 1e6:
				count += 1
	print "ans =", count

if __name__ == '__main__':
	print "time =", EulerUtils.timeit(main, (101,))[0]