[英]How do i check if the number is semi prime
def is_prime(num):
if num > 1:
for i in range(2,num):
if (num % i) == 0:
return False
else:
return True
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)
return is_prime(d1) and is_prime(d2)
return False
is_semiprime()
半質數是兩個質數的乘積。 所以算法很簡單:
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()
我從is_prime
Function for Python Language復制了is_prime
函數
數字=整數(輸入())
s=數字
x=[]
對於范圍內的 i (2,number+1):
if s%i==0:
x.append(i)
s=s//I
if s==i or (i>s and s!=1):
x.append(s)
如果 len(x)==2:
print(f"{number} is a semiprime number because it is the product of Tow primes: ",end="")
別的:
print(f"{number} is not a semiprime number because it is the product of {len(x)} primes: ",end="")
對於 x 中的 i:
if i==x[-1]:
print(i)
else:
print(str(i)+"*",end="")
def check_prime(n): #for checking wheather prime or not
if n > 1:
if n == 2: return True
for i in range(2,n):
if n % i == 0:
return False
break
return True
return False
def primeproduct(m): #for checking wheather prime product or not
if m >= 0:
for i in range(1,m):
if m%i == 0 and check_prime(i) and check_prime(m//i):
return True
break
return False
這可能有幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.