📜  打印所有小于或等于 N 的强数(1)

📅  最后修改于: 2023-12-03 15:10:02.151000             🧑  作者: Mango

打印所有小于或等于 N 的强数

在数学中,强数(也称为强整除数 或 2-强整除数)是指一个正整数,它的每个因子都比它本身小,并且它本身是一个质数。

我们可以使用以下方法来打印所有小于或等于 N 的强数。

def is_prime(num):
    """
    判断一个数是否为质数,如果是则返回 True,否则返回 False。
    """
    if num < 2:
        return False
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            return False
    return True

def is_strong(num):
    """
    判断一个数是否为强数,如果是则返回 True,否则返回 False。
    """
    if num < 2:
        return False
    for i in range(2, num):
        if num % i == 0 and is_prime(i):
            if num % (i * i) != 0:
                return False
    return True

def print_strong_numbers(n):
    """
    打印出所有小于或等于 n 的强数。
    """
    for i in range(2, n+1):
        if is_strong(i):
            print(i)

以上代码定义了三个函数:

  • is_prime(num) 用于判断一个数是否为质数。
  • is_strong(num) 用于判断一个数是否为强数。
  • print_strong_numbers(n) 用于打印所有小于或等于 n 的强数。

下面是一个使用示例:

>>> print_strong_numbers(100)
2
3
5
7
13
17
19
31
61
89

因此,以上代码可以实现在Python中打印所有小于或等于 N 的强数。