| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2760 人关注过本帖
标题:用Python判断质偶数
只看楼主 加入收藏
ysr2857
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:34
帖 子:796
专家分:70
注 册:2020-2-10
收藏
得分:0 
回复 18楼 东海ECS
while True:
...     try:
...         a = 1
...         b = 0
...         c = input('请输入一个数字:')
...         c = eval(c)
...         for i in range(c):
...             if c % a == 0:
...                 b += 1
...             if a < c:
...                 a += 1
...         if b > 2:
...             print('这是一个合数')
...         else:
...             print('这是一个质数')
...     except:
...         print("错误")
...         exit()
...
请输入一个数字:997
这是一个质数
请输入一个数字:

这个程序可以运行,速度仍然是太慢,输入12345678911111111十几分钟过去了也没有算出来只好强行停止了
2023-01-31 11:35
ysr2857
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:34
帖 子:796
专家分:70
注 册:2020-2-10
收藏
得分:0 
while True:
...     try:
...         a = 1
...         b = 0
...         c = input('请输入一个数字:')
...         c = eval(c)
...         d=c**0.5
...         e=int(d)
...         for i in range(e):
...             if c % a == 0:
...                 b += 1
...             if a < c:
...                 a += 1
...         if b > 2:
...             print('这是一个合数')
...         else:
...             print('这是一个质数')
...     except:
...         print("错误")
...         exit()
...
请输入一个数字:12345678911111111
这是一个质数
请输入一个数字:

这样速度快了,仍然是错误的,应该是:b>=2
2023-01-31 11:45
东海ECS
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:Python
等 级:版主
威 望:32
帖 子:412
专家分:1646
注 册:2023-1-24
收藏
得分:0 
回复 22楼 ysr2857
没看懂,输入数字的0.5次幂什么意思?望赐教.

会当凌绝顶,一览众山小.
2023-01-31 11:56
东海ECS
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:Python
等 级:版主
威 望:32
帖 子:412
专家分:1646
注 册:2023-1-24
收藏
得分:0 
程序代码:
while True:
    try:
        c = input('请输入一个数字:')
        c = eval(c)
        if c <= 1:
            print("无法计算.")
            exit()
        b = 0
        list1 = [2,3,5,7,11,13,17,19]
        for i in range(7):
            if c % list1[i] == 0:
                b = b + 1
        if b >= 2:
            print("合数")
        else:
            print("质数")
    except:
        print("错误")
        exit()

这个快很多,但是有些特殊的数字会出错

会当凌绝顶,一览众山小.
2023-01-31 12:02
ysr2857
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:34
帖 子:796
专家分:70
注 册:2020-2-10
收藏
得分:0 
while True:
    try:
        a = 1
        b = 0
        c = input('请输入一个数字:')
        c = eval(c)
        d=c**0.5
        e=int(d)
        for i in range(e):
            if c % a == 0:
                b += 1
            if a < c:
                a += 1
        if b >= 2:
            print('这是一个合数')
        else:
            print('这是一个质数')
    except:
        print("错误")
        exit()

[此贴子已经被作者于2023-1-31 12:07编辑过]

2023-01-31 12:04
东海ECS
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:Python
等 级:版主
威 望:32
帖 子:412
专家分:1646
注 册:2023-1-24
收藏
得分:0 
由于1既不是质数也不是合数,而且质合数一般是自然数(不包括0)
所以要加检验代码:
程序代码:
if c <= 1:
    print("无法计算.")
    exit()

会当凌绝顶,一览众山小.
2023-01-31 12:09
ysr2857
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:34
帖 子:796
专家分:70
注 册:2020-2-10
收藏
得分:0 
while True:
...     try:
...         a = 1
...         b = 0
...         c = input('请输入一个数字:')
...         c = eval(c)
...         d=c**0.5
...         e=int(d)
...         for i in range(e):
...             if c % a == 0:
...                 b += 1
...             if a < c:
...                 a += 1
...         if b >= 2:
...             print('这是一个合数')
...         else:
...             print('这是一个质数')
...     except:
...         print("错误")
...         exit()
...
请输入一个数字:12345678911111111
这是一个合数
请输入一个数字:
2023-01-31 12:12
ysr2857
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:34
帖 子:796
专家分:70
注 册:2020-2-10
收藏
得分:0 
回复 24楼 东海ECS
while True:
...     try:
...         c = input('请输入一个数字:')
...         c = eval(c)
...         if c <= 1:
...             print("无法计算.")
...             exit()
...         b = 0
...         list1 = [2,3,5,7,11,13,17,19]
...         for i in range(7):
...             if c % list1[i] == 0:
...                 b = b + 1
...         if b >= 2:
...             print("合数")
...         else:
...             print("质数")
...     except:
...         print("错误")
...         exit()
...
请输入一个数字:997
质数
请输入一个数字:12345678911111111
质数
请输入一个数字:12345678911111113
质数
请输入一个数字:14629
质数
请输入一个数字:
这个快,需要列全素数表,否则就输出错误结果了。
2023-01-31 12:16
东海ECS
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:Python
等 级:版主
威 望:32
帖 子:412
专家分:1646
注 册:2023-1-24
收藏
得分:0 
回复 27楼 ysr2857
[原内容已被撤销]

[此贴子已经被作者于2023-1-31 12:19编辑过]


会当凌绝顶,一览众山小.
2023-01-31 12:17
ysr2857
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:34
帖 子:796
专家分:70
注 册:2020-2-10
收藏
得分:0 
回复 23楼 东海ECS
求平方根的,试除方根内的整数。
这样速度就快了,否则太慢了!
2023-01-31 12:21
快速回复:用Python判断质偶数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016634 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved