求如何用python判断输入数字是否为素数,我这种方法不知道为什么不行,求大神帮忙。

2020-01-21 20:59发布

2条回答
\"骚年 ilove
2楼-- · 2020-01-21 21:33

给你个正则就解决了, '^(11+?)\\1+$'

查看更多
老娘就宠你
3楼-- · 2020-01-21 21:46

运用python的数学函数

import math

def isPrime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True

单行程序扫描素数

from math import sqrt
N = 100
[ p for p in range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(p))+1)] ]

运用python的itertools模块

from itertools import count
def isPrime(n):
if n <= 1:
return False
for i in count(2):
if i * i > n:
return True
if n % i == 0:
return False

不使用模块的两种方法

def isPrime(n):
if n <= 1:
return False
i = 2
while i*i <= n:
if n % i == 0:
return False
i += 1
return True

def isPrime(n):
if n <= 1:
return False
if n == 2:
return True
if n % 2 == 0:
return False
i = 3
while i * i <= n:
if n % i == 0:
return False
i += 2
return True
转自:https://www.cnblogs.com/themost/p/6552198.html

查看更多
登录 后发表回答