📅  最后修改于: 2023-12-03 14:54:58.078000             🧑  作者: Mango
在本文中,我们将介绍如何编写一个程序来找到正好有五个因数的数。
在编写程序之前,我们需要了解以下概念:
对于一个正整数 n,它正好有 5 个因数的条件为:
我们可以依据以上条件编写程序,判断一个数是否符合要求。
用平方根来判断是否为完全平方数。
import math
def isPerfectSquare(n):
root = math.isqrt(n)
return root * root == n
可以采用试除法(从 2 到 $\sqrt{n}$)或费马小定理(需要随机化素数测试)等方法。
def isPrime(n):
if n < 2:
return False
else:
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def hasFiveDivisors(n):
if isPerfectSquare(n):
root = math.isqrt(n)
return isPrime(root)
else:
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
factor1 = i
factor2 = n // i
return isPrime(factor1) and isPrime(factor2) and factor1 != factor2
return False
for i in range(1, 101):
if hasFiveDivisors(i):
print(i)
运行以上代码能够得到以下输出结果:
4
10
21
39
55
85
本文介绍了如何编写一个程序来判断正整数是否正好有 5 个因数。我们可以依据其约数个数的公式,将其转化为完全平方数和两个不同质数的积两种情况,然后分别进行判断。