Ale*_*Ghi 0 python primes numbers python-3.x
尝试编写一个程序来检查一个数字是否为素数。写了下面的代码,但不明白为什么我有两行输出:
num = int(input("Provide number to check if prime: "))
if num <=1:
print("Invalid choice, try again")
num = int(input("Provide number to check if prime: "))
for i in range(2,num):
if num% i ==0:
print("Number is not prime")
break
if num %i !=0:
print("Number is prime")
Run Code Online (Sandbox Code Playgroud)
我的输出是:
Provide number to check if prime: 15
Number is prime
Number is not prime
Run Code Online (Sandbox Code Playgroud)
sympy.isprime () 是SymPy模块下的内置函数,可用于检查可能的素数。它是一个直接函数,如果要检查的数字是质数则返回 True,如果要检查的数字不是质数则返回 False。
>>> import simpy
>>> sympy.isprime(8)
False
>>> sympy.isprime(11)
True
Run Code Online (Sandbox Code Playgroud)
或者定义一个像这样的函数
>>> def isPrime(k):
# 1 is not prime number
if k==1:
return False
# 2, 3 are prime
if k==2 or k==3:
return True
# even numbers are not prime
if k%2==0:
return False
# check all numbers till square root of the number ,
# if the division results in remainder 0
# (skip 2 since we dont want to divide by even numbers)
for i in range(3, int(k**0.5)+1, 2):
if k%i==0:
return False
return True
>>> print(isPrime(13))
True
>>> print(isPrime(18))
False
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1309 次 |
| 最近记录: |