Mar*_*deX 1 python if-statement range
def is_prime(num):
if num > 1:
for i in range(2,num):
Run Code Online (Sandbox Code Playgroud)
if (num % i) == 0:
return False
Run Code Online (Sandbox Code Playgroud)
else:
return True
Run Code Online (Sandbox Code Playgroud)
else:
return False
def is_semiprime():
n = int(input("Enter a number to find out if its semiprime or not\n>>> "))
for d1 in range(2, int(n**.5)):
if n % d1 == 0:
d2 = int(n / d1)
Run Code Online (Sandbox Code Playgroud)
return is_prime(d1) and is_prime(d2)
return False
is_semiprime()
Run Code Online (Sandbox Code Playgroud)
半质数是两个质数的乘积。所以算法很简单:
d1。d1得到第二个除数,d2。d1和是否d2都是素数。如果是,那么原始数是半素数。代码:
def is_semiprime(n):
for d1 in range(2, int(n**.5)+1):
if n % d1 == 0:
d2 = n / d1
return is_prime(d1) and is_prime(d2)
return False
def is_prime(n):
if n == 2 or n == 3: return True
if n < 2 or n%2 == 0: return False
if n < 9: return True
if n%3 == 0: return False
r = int(n**0.5)
f = 5
while f <= r:
if n%f == 0: return False
if n%(f+2) == 0: return False
f +=6
return True
def ask_semiprime():
num = int(input("What number would you like to check?"))
if is_semiprime(num):
print(num, " is semiprime")
else:
print(num, " is not semiprime")
ask_semiprime()
Run Code Online (Sandbox Code Playgroud)
我is_prime从isPrime Function for Python Language复制了函数