计算 python 中给定数字的前两个因数(1 除外)的程序

Program to calculate first two factors (except 1) of given number in python

问题如下: 学生在 python 实验室。她夹在中间计算给定正整数的前两个因子(1 除外)。编写一个程序来计算给定数字的前两个因数,并让学生知道数字是否没有任何因数。 我正在尝试这样:

def factor(num):
    for x in range(1, num+1):
        if num%x==0:
            if x!=1:
                print(x)

num = int(input())
factor(num)

但是这样,它打印了所有的因素。

首先,如果从 2 开始 range,则不需要检查 x=1。

如果输入将是一个大数,您可以使用计数器来确保您没有运行循环查找所有因数:

def factor(num):
    counter = 0
    for i in range(2, num):
        if counter == 2:
            break
        if num%i == 0:
            counter += 1
            print(i)

否则,列表理解会更有效:

[i for i in range(2, num+1) if inp%i==0][:2]