楼主: skystars

[Python] Python 判断质数函数

[复制链接]

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5120
人气
137
分享
5
发表于 2022-4-25 22:10:28 | 显示全部楼层
你可以试试numpy,这个库底层用c写的,运行效率高
Manners maketh man

0

技术

6

魅力

0

原创

管理员

Rank: 9Rank: 9Rank: 9

积分
5346
人气
243
分享
47

论坛元老优秀版主活跃会员

发表于 2022-4-26 15:42:47 | 显示全部楼层
test

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5120
人气
137
分享
5
发表于 2022-4-26 20:22:32 | 显示全部楼层
Manners maketh man

0

技术

0

魅力

0

原创

初出茅庐

Rank: 2

积分
69
人气
0
分享
0
发表于 2022-12-26 00:20:50 | 显示全部楼层
xiaomeng 发表于 2022-4-24 18:57
你想复杂了
[mw_shl_code=python,true]

循环到小于等于根号n的最大整数就行

2

技术

2

魅力

5

原创

略有小成

Rank: 4

积分
2807
人气
96
分享
31
发表于 2023-1-14 15:31:51 | 显示全部楼层
本帖最后由 wwwab 于 2023-1-14 16:00 编辑

我的码风是这个样子的:

[Python] 纯文本查看 复制代码
n=float(input("Please enter the number here:"))
m=int(n)
a=n.is_integer()
if m>=0 and a==True:    #It means the number what the user entered is a nonnegative integer number, namely a natural number, and a necessary condition for a number to be a prime number is that the number to be a natural number.
    if m<2:
        print("False. The number you entered is:",str(m)," . Congratulations! It means it is not a prime number and it is a composite number.")
    elif m==2:
        print("True. The number you entered is:",str(m)," . Congratulations! It means it is a prime number.")
    else:
        for i in range(2, m):
            if m%i==0:
                print("False. The number you entered is:",str(m)," . Congratulations! It means it is not a prime number and it is a composite number.")
                break
            else:
                print("True. The number you entered is:",str(m)," . Congratulations! It means it is a prime number.")
elif m<0:
    print("False. Warning:The number you entered is:",str(m)," . What you entered is not an nonnegative number, it is a negative number, It does not belong to a natural number, nor can it belong to a prime number. Please try again!")
else:
    print("False. Warning:The number you entered is:",str(m)," . What you entered is not an integer number, It does not belong to a natural number, nor can it belong to a prime number. Please try again!")    #It means a==False



评分

参与人数 1经验 +10 收起 理由
xiaomeng + 10

查看全部评分

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5120
人气
137
分享
5
发表于 2023-1-14 19:09:18 | 显示全部楼层
wwwab 发表于 2023-1-14 15:31
我的码风是这个样子的:

[mw_shl_code=python,true]n=float(input("Please enter the number here:"))

可以,,,,
Manners maketh man

0

技术

1

魅力

0

原创

略知一二

Rank: 3Rank: 3

积分
378
人气
10
分享
4
发表于 2024-3-1 23:14:44 | 显示全部楼层
应该是这样:
[Python] 纯文本查看 复制代码
# coding=utf-8

number = int(input(“请输入正整数:”))
if number <= 0:
    print(“请输入正整数。”)
else:
    for i in range(number):
        if number % (i + 1) == 0:
            continue
        else:
            break
        
print(“这是个质数。”)

评分

参与人数 1经验 +10 收起 理由
xiaomeng + 10

查看全部评分

我并不出名
开源地址:https://github.com/windowsjiang/

0

技术

1

魅力

0

原创

略知一二

Rank: 3Rank: 3

积分
378
人气
10
分享
4
发表于 2024-8-13 12:15:19 | 显示全部楼层
[Python] 纯文本查看 复制代码
def IsPrime(Number) -> bool:
    if type(Number) == "<class 'float'>":
        return False
    else:
        if Number == 2:
            return True
        else:
            for i in range(1, int(sqrt(Number))):
                if Number % i == 0:
                    return False
            return True

评分

参与人数 1经验 +10 收起 理由
xiaomeng + 10

查看全部评分

我并不出名
开源地址:https://github.com/windowsjiang/

1

技术

25

魅力

7

原创

管理员

Rank: 9Rank: 9Rank: 9

积分
11345
人气
297
分享
42

论坛元老优秀版主活跃会员最佳新人灌水之王

 楼主| 发表于 2024-10-6 20:58:38 | 显示全部楼层
xiaomeng 发表于 2022-4-25 12:37
。。。。你用多线程更快了

Python是假多线程
Just do it.

0

技术

7

魅力

0

原创

版主

Rank: 7Rank: 7Rank: 7

积分
5120
人气
137
分享
5
发表于 2024-10-7 21:38:44 | 显示全部楼层

对,有全局解释锁,但是我听说好像要移除了

而且还可以用一些加速库,比如说taichi,numba这样的来提前预编译代码来提速
Manners maketh man
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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