新手新手,多多指教!{:10_297:}
import math
h = 1
d = 0
u = 0
while h<10 :
hun = math.factorial(h)
while d<10 :
dec = math.factorial(d)
while u<10 :
unit = math.factorial(u)
if (h*100 + d*10 + u) == (hun + dec + unit) :
print(hun + dec + unit)
u += 1
d += 1
u = 0
h += 1
d = u = 0
# 得145
from functools import reduce
f = lambda i: reduce(lambda x,y: x*y, range(1, i+1)) if i !=0 else 1
for i in range(100,1000):
if f(i//100)+f(i%100//10)+f(i%10)==i:
print(i)
for i in range(100,1000):
a=i//100
b=i%100//10
c=i%100%10
if i==a**3+b**3+c**3:
print(i)
是阶乘和还是他们三个的阶乘
m = range(1,10)
q = w = e = 1
for x in m:
for y in m:
for z in m:
for a in range(1,x+1):
q *= a
for b in range(1,y+1):
w *= b
for c in range(1,z+1):
e *= c
if q+w+e == x*100+y*10+z:
print(q+w+e)
q = w = e = 1
def jiecheng(n):
a = 1
if (n == 0) or (n == 1):
number = a
else :
for i in range(1,n + 1):
a = a * i
number = a
return answer
answer = []
for i in (100,1000):
bai = int(i / 100)
shi = int((i - bai * 100) / 10)
ge = int(i - bai * 100 - shi * 10)
if i == jiecheng(bai) + jiecheng(shi) + jiecheng(ge):
answer.append(i)
print(answer)
#Narcissistic Numbers
def narNums():#计算水仙花数
n = 100
while n<1000:
num_str = str(n)
if pow(int(num_str),3)+pow(int(num_str),3)+pow(int(num_str),3) == n:
print(n)
n += 1
return
def factorial(n):#计算阶乘函数
if n == 0:
return 1
elif n == 1:
return 1
else:
return n*factorial(n-1)
def fac_narNums():#计算阶乘水仙花数
n = 100
while n<1000:
num_str = str(n)
if factorial(int(num_str))+factorial(int(num_str))+factorial(int(num_str)) == n:
print(n)
n += 1
return
def main():
print("水仙花数:")
narNums()
print("阶乘水仙花数:")
fac_narNums()
return
if __name__ == "__main__":
main()
水仙花数:
153
370
371
407
阶乘水仙花数:
145
>>>
def factorialnumber():
def factorial(n):
result=n
for i in range(1,n):
result*=i
if n==0:
return 1
return result
for i in range(100,1000):
tempvalue=i
sumtemp=0
for each in range(0,3):
temp=tempvalue%10
sumtemp=sumtemp+factorial(temp)
tempvalue=tempvalue//10
if i==sumtemp:
print("the number is: %d"%i)
factorialnumber()
def factorial(x):
result = 1
for i in range(2, x + 1):
result *= i
return result
for i in range(100, 1000):
a = int(i / 100)
b = int(i / 10) % 10
c = i % 10
if (i == factorial(a) + factorial(b) + factorial(c)):
print(i)
所得为145
#m_158.py
#fengyutianshang
def factorial(num):
"计算num的阶乘"
fac = 1
if num < 0:
return 0
elif num == 0:
return 1
else:
for i in range(1, num + 1):
fac = fac * i
return fac
for a in range(1,10):
for b in range(0, 10):
for c in range(0, 10):
temp = factorial(a) + factorial(b) +factorial(c)
if temp == 100*a +10*b + c:
fin = temp
break
print("%d 为所求的三位数!"% fin)
from math import *
for i in range(100,1000):
a = i // 100
b = i // 10 % 10
c = i % 10
if factorial(a) + factorial(b) + factorial(c) == i:
print(i)
def jc(a):
if a == 0:
return 0
else:
j = 1
for i in range(1,a+1):
j*= i
return j
def flower(num):
a, b, c = list(str(num))
if jc(int(a)) + jc(int(b)) + jc(int(c)) == num:
return True
else:return False
if __name__ == '__main__':
flowers = list()
for i in range(100, 1000):
if flower(i):
flowers.append(i)
print(flowers, len(flowers))
剛學習編程的新手 每日練習奠定穩固的編程基礎!
def factorial(number):
if number == 1 or number == 0:
return 1
return number*factorial(number-1)
answer = [factorial(i)+factorial(j)+factorial(k) for i in range(1, 10) for j in range(0, 10) for k in range(0, 10)\
if i*100+j*10+k == factorial(i)+factorial(j)+factorial(k)]
print(answer)
import math
def function(num):
factorial_sum = 0
for each in str(num):
factorial_sum += math.factorial(int(each))
return factorial_sum == num
for num in range(100, 1000):
if function(num):
print(num, end=' ')
print()
def calc(x):
result=1
x=int(x)
for i in range(1,x+1):
result*=i
i+=1
return result
def main():
for i in range(100,1000):
temp=str(i)
result=calc(temp)+calc(temp)+calc(temp)
if result==i:
print(i)
if __name__=='__main__':
main()
from itertools import accumulate
from operator import mul
def fun158():
def factorial(num):
if num == 0:
return 1
return max(,mul)])
for i in range(100,1000):
if sum() == i:
return i
if __name__ == '__main__':
print(fun158())
for i in range(100,999,1):
a=str(i)#把三位数变成字符串
sum=0
for each in a:
b=int(each)#把三位数的各位数字列出来并依次赋值给b
c=1
while b>0: #使用循环求数字b的阶乘c
c=c*b
b-=1
sum+=c#求各位数字阶乘c的和
if i==sum:
print(i)
为啥看不到别人的答案啊
本帖最后由 JessiFly 于 2018-3-1 10:57 编辑
def fact(num):
if num == 0 or num == 1:
return 1
else:
return num * fact(num-1)
for i in range(100,1000):
sum = 0
temp = i
while temp:
sum += fact(temp%10)
temp //= 10
if sum == i:
print(i)
本帖最后由 lyjlyj 于 2018-3-1 10:57 编辑
#coding=utf-8
'''求三位数中,其值等于各位数的阶乘之和'''
#求阶乘
def factorial(n):
sum = 1
for i in range(1,n+1):
sum *= i
return sum
for num in range(100,1000):
num_list = #分离num
sum = factorial(num_list)+factorial(num_list)+factorial(num_list)#求和
#print (sum,num)
if num == sum:
print (num)