Project Euler Problem 32
来源:互联网 发布:小嶋阳菜毕业知乎 编辑:程序博客网 时间:2024/05/20 22:30
Project Euler problem 32.
We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once; for example, the 5-digit number, 15234, is 1 through 5 pandigital.
The product 7254 is unusual, as the identity, 39 × 186 = 7254, containing multiplicand, multiplier, and product is 1 through 9 pandigital.
Find the sum of all products whose multiplicand/multiplier/product identity can be written as a 1 through 9 pandigital.
HINT: Some products can be obtained in more than one way so be sure to only include it once in your sum.
### 2 * 3productSet = set()productList = []for i in range (10, 100): for j in range (100, 1000): if i * j > 9999: break elif i * j <= 9999: product = i * j digitNumbers = set() firstNum = i % 10 if firstNum != 0: digitNumbers.add(firstNum) else: continue secondNum = (i - i % 10) / 10 if secondNum in digitNumbers: continue else: digitNumbers.add(secondNum) thirdNum = j % 10 if thirdNum in digitNumbers or thirdNum == 0: continue else: digitNumbers.add(thirdNum) fourthNum = (j % 100 - j % 10) / 10 if fourthNum in digitNumbers or fourthNum == 0: continue else: digitNumbers.add(fourthNum) fifthNum = (j - j % 100) / 100 if fifthNum in digitNumbers: continue else: digitNumbers.add(fifthNum) sixthNum = (product - product % 1000) / 1000 if sixthNum in digitNumbers: continue else: digitNumbers.add(sixthNum) seventhNum = (product % 1000 - product % 100) / 100 if seventhNum in digitNumbers or seventhNum == 0: continue else: digitNumbers.add(seventhNum) eighthNum = (product % 100 - product % 10) / 10 if eighthNum in digitNumbers or eighthNum == 0: continue else: digitNumbers.add(eighthNum) ninthNum = product % 10 if ninthNum in digitNumbers or ninthNum == 0: continue else: if product not in productSet: productSet.add(product) productList.append(product) print i, "*", j, "=", product### 1 * 4for i in range(1, 10): for j in range(1000, 10000): if i * j > 9999: break elif i * j <= 9999: product = i * j digitNumbers = set() firstNum = i digitNumbers.add(firstNum) secondNum = j % 10 if secondNum in digitNumbers: continue else: digitNumbers.add(secondNum) thirdNum = (j % 100 - j % 10) / 10 if thirdNum in digitNumbers or thirdNum == 0: continue else: digitNumbers.add(thirdNum) fourthNum = (j % 1000 - j % 100) / 100 if fourthNum in digitNumbers or fourthNum == 0: continue else: digitNumbers.add(fourthNum) fifthNum = (j - j % 1000) / 1000 if fifthNum in digitNumbers: continue else: digitNumbers.add(fifthNum) sixthNum = (product - product % 1000) / 1000 if sixthNum in digitNumbers: continue else: digitNumbers.add(sixthNum) seventhNum = (product % 1000 - product % 100) / 100 if seventhNum in digitNumbers or seventhNum == 0: continue else: digitNumbers.add(seventhNum) eighthNum = (product % 100 - product % 10) / 10 if eighthNum in digitNumbers or eighthNum == 0: continue else: digitNumbers.add(eighthNum) ninthNum = product % 10 if ninthNum in digitNumbers or ninthNum == 0: continue else: if product not in productSet: productSet.add(product) productList.append(product) print i, "*", j, "=", productresult = 0for i in range(0, len(productList)): result += productList[i]print result
solved using Python. the answer is 45228.
0 0
- Project Euler Problem 32
- Project Euler - Problem 32
- Project Euler problem 32
- Project Euler Problem 32
- project euler problem 32又是暴搜
- Project Euler:Problem 32 Pandigital products
- Euler Project Problem 6
- project euler problem 11
- Project Euler Problem 81
- Project Euler Problem 60
- Project Euler Problem 59
- Project Euler Problem 58
- Project Euler Problem 57
- Project Euler Problem 16
- Project Euler Problem 30
- Project Euler Problem 31
- Project Euler Problem 14
- Project Euler Problem 15
- Arduino 语法手册
- Get,Post请求中文乱码问题有效解决方法
- C做题笔记(一)
- Unity人物三连击Animator实现
- 浅谈指针
- Project Euler Problem 32
- java集合:Collection和Map的介绍
- 系统分析师论文通用格式
- Git简单教程(四)--团队协作,组织和分支
- 阶段性总结——自考
- 优化代码的重要性
- poj1007-java
- Java基础---接口
- 六种流行的语言---C、C++、python、Java、php、C#比较[转]