Project Euler 43

这题本是一道数学题……


本是一道数学题啊……就被我……不……被python这么暴力的解决了……


python的itertools太屌了……

docs

直接有排列的内置函数……我去……

有了内置函数……这一切都好办了……

from itertools import *

def check(digits):
	prime = [2,3,5,7,11,13,17]
	length = 10
	l_prime = 6
	while length>3:
		tmp = int("".join(digits[length-3:length]))
		if tmp % prime[l_prime] != 0:
			return False
		length -= 1
		l_prime -= 1
	return True



def main():
	permutation_digit = list(permutations(str(i) for i in range(0,10)))
	#permutation_digit = [['1','4','0','6','3','5','7','2','8','9']]
	sum = 0
	for i in permutation_digit:
		if check(i):
			sum += int("".join(i))
	print(sum)


if __name__ == '__main__':
        main()

刚才好友被盗号了……幸亏我小心谨慎……哎……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章