📅  最后修改于: 2023-12-03 15:27:35.132000             🧑  作者: Mango
给定一个数字,编写一个程序来计算它的非质数除数数量。
首先,我们需要了解什么是质数和非质数:
质数(也叫素数)是指除了1和它本身以外,不能被其他整数整除的数,比如2、3、5、7、11、13等。
非质数则是指除了1和它本身以外,能被其他整数整除的数,比如4、6、8、9、10等。
因此,求给定数字的非质数除数数量,我们只需要遍历数字的除数,判断除数是否是质数,如果不是,则计数器加一即可。
判断一个数是否是质数,可以使用以下方法:
import math
def is_prime(n):
if n < 2:
return False
for i in range(2, int(math.sqrt(n))+1):
if n % i == 0:
return False
return True
def non_prime_divisors(n):
count = 0
for i in range(2, n//2+1):
if n % i == 0 and not is_prime(i):
count += 1
return count
>>>non_prime_divisors(15)
2
>>>non_prime_divisors(22)
2
>>>non_prime_divisors(100)
4
以上就是本题的解题思路和代码实现,并通过示例验证了代码的正确性。题目难度较低,适合初学者进行练习。