鱼C论坛

 找回密码
 立即注册
查看: 2080|回复: 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 编辑
def prime(n):
    r = False
    if n > 1:
        if n % 2 and n % 3 and n % 5 and n % 7:
            i = 3 
            while i * i < n + 1:
                if not (n % i) :
                    break
                i += 2
            else:
                r = True
        elif n == 2 or n == 3 or n == 5 or n == 7:
            r = True
    return r

def jc(n):
    r = 1
    for i in range(n):
        r *= (i + 1)
    return r

for i in range(800 , 1201):
    j , d = i , []
    while j:
        d . insert(0 , j % 10)
        j //= 10
    e = []
    for k in range(len(d)):
        e . append(jc(d[k]))
    s = sum(e)
    if prime(s):
        t = "%d:%d!" % (i , d[0])
        for k in range(1 , len(d)):
            t += '+%d!' % d[k]
        t += '=%d' % s
        print(t)
        运行时况
D:\0002.Exercise\Python>python x.py
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
1021:1!+0!+2!+1!=5
1102:1!+1!+0!+2!=5
1112:1!+1!+1!+2!=5
1120:1!+1!+2!+0!=5
1121:1!+1!+2!+1!=5
1200:1!+2!+0!+0!=5

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 03:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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