EularProject 34: 一个数字与他每位数的阶乘和

原创 2015年07月09日 00:38:02

Digit factorials
Problem 34
145 is a curious number, as 1! + 4! + 5! = 1 + 24 + 120 = 145.

Find the sum of all numbers which are equal to the sum of the factorial of their digits.

Note: as 1! = 1 and 2! = 2 are not sums they are not included.

Answer:
40730
Completed on Wed, 8 Jul 2015, 17:34
Go to the thread for problem 34 in the forum.

from math import factorial

m=factorial(9)

def func(x):
    result=0
    while x>0:
        result+=factorial(x%10)
        x//=10
    return result
k=1
while True:
    if k*m<pow(10,k):
        break
    k+=1

result=0
for i in range(3,pow(10,k)):
    if i==func(i):
        result+=i
print(result)
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

输入一个整数把每位数字转换为英文

请输入一个整数、数字、字符把每位字符转换为英文、字母
  • da_lin
  • da_lin
  • 2017年06月28日 19:23
  • 189

对一个二进制的每位进行0和1反转,求反转后的二进制所对应的十进制数

题目描述: 对一个二进制的每位进行0和1反转,求反转后的二进制所对应的十进制数   输入:110    输出:1   方法: public String getNumber(BigInteger ...

基于c++的数字的每位的输出

  • 2014年03月19日 22:47
  • 519B
  • 下载

/*算法从9个数中取出3个3位数其中两个3位数相加等于另一个3位数其中每位数字不能重复,c语言怎么实现*/

c++ int 取出[9], 位数[3]{0, 0, 0}, 个数(999999999), 序(0), 幕(100), 取; do {/*这里只设计按顺序截取3个3位数的算法,按我对题目所理解...

编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 + 2 + 34–5 + 67–8 + 9 = 100。

如题:编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入, 使得计算结果总是100的程序,并输出所有的可能性。 例如:1 + 2 + 34–5 + 67–8 + 9 = 100...
  • djh122
  • djh122
  • 2015年05月14日 10:16
  • 1374

四个整数字加密解密实现.每位数字都加上5,相加后除以10的余数代替该数字再倒序

加密规则如下:每位数字都加上5,相加后除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换: package 算法; public class 简单口令加密算法 { public...
  • gfdonx
  • gfdonx
  • 2015年11月06日 00:57
  • 1358

java 任意正整数取出每位数

  • 2016年08月11日 23:57
  • 406B
  • 下载

华为机试题--二进制数的每位进行0和1反转求值

一、问题描述 功能描述:对一个二进制数的每位进行0和1反转,求翻转后的二进制所对应的十进制 输入:110 输出:1 要求实现方法: public String getNumber(Big...

数位DP 求K进制下0~N的每个数每位上出现的数的总和

好久没写博客了,因为感觉时间比较紧,另一方面没有心思,做的题目比较浅也是另一方面。 热身赛第二场被血虐了好不好,于是决定看看数位DP吧。   进入正题:   如题是一道经(简)典(单)的数位...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:EularProject 34: 一个数字与他每位数的阶乘和
举报原因:
原因补充:

(最多只允许输入30个字)