鱼C论坛

 找回密码
 立即注册
查看: 1730|回复: 2

python,拜托纠正错误!

[复制链接]
发表于 2021-4-4 18:23:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
程序运行不了,应该有很多错误的地方,拜托指正!谢谢。

题目:
找出800-1200之间所有符合以下条件的数:该数的各位数字的阶乘和为素数。按如下格式打印出所有符合条件的数:
807:8!+0!+7!=45361
817:8!+1!+7!=45361
870:8!+7!+0!=45361
871:8!+7!+1!=45361
1002:1!+0!+0!+2!=5
1012:1!+0!+1!+2!=5
1020:1!+0!+2!+0!=5

…………

程序中包含两个函数,分别用于实现判断素数和计算阶乘。



for i in range(800,1201):
    st=str(i)
    for j in st:
        jie=1
        sum=0
        m=1
        all_data=[]
        num=0
        while int(j) >= m:
            jie=jie*m
            sum=sum+jie
            m=m+1
        print(sum)
        num+=1
        all_data.append(sum)
for sum in all_data:
    k=2
    if sum%k==0:
        break
    else:
        k+=1
print(i":"i[0]"!+"i[1]"!+"i[2]"!="sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-4-4 18:32:11 | 显示全部楼层
不用造函数的方法这样能搞出来吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-4 20:37:03 | 显示全部楼层
本帖最后由 jackz007 于 2021-4-4 20:41 编辑
  1. def prime(n):
  2.     r = False
  3.     if n > 1:
  4.         if n % 2 and n % 3 and n % 5 and n % 7:
  5.             i = 3
  6.             while i * i < n + 1:
  7.                 if not (n % i) :
  8.                     break
  9.                 i += 2
  10.             else:
  11.                 r = True
  12.         elif n == 2 or n == 3 or n == 5 or n == 7:
  13.             r = True
  14.     return r

  15. def jc(n):
  16.     r = 1
  17.     for i in range(n):
  18.         r *= (i + 1)
  19.     return r

  20. for i in range(800 , 1201):
  21.     j , d = i , []
  22.     while j:
  23.         d . insert(0 , j % 10)
  24.         j //= 10
  25.     e = []
  26.     for k in range(len(d)):
  27.         e . append(jc(d[k]))
  28.     s = sum(e)
  29.     if prime(s):
  30.         t = "%d:%d!" % (i , d[0])
  31.         for k in range(1 , len(d)):
  32.             t += '+%d!' % d[k]
  33.         t += '=%d' % s
  34.         print(t)
复制代码

        运行时况
  1. D:\0002.Exercise\Python>python x.py
  2. 807:8!+0!+7!=45361
  3. 817:8!+1!+7!=45361
  4. 870:8!+7!+0!=45361
  5. 871:8!+7!+1!=45361
  6. 1002:1!+0!+0!+2!=5
  7. 1012:1!+0!+1!+2!=5
  8. 1020:1!+0!+2!+0!=5
  9. 1021:1!+0!+2!+1!=5
  10. 1102:1!+1!+0!+2!=5
  11. 1112:1!+1!+1!+2!=5
  12. 1120:1!+1!+2!+0!=5
  13. 1121:1!+1!+2!+1!=5
  14. 1200:1!+2!+0!+0!=5

  15. D:\0002.Exercise\Python>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-12 21:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表