题目要求

通过函数判断一个自然数是否为素数_整除

代码

# 判断是否为素数
def is_prime(data):

    flag = True
    int_list = []
    if data > 1:
        for i in range(2,data): # 查找除了1和其本身外,其他因子
            if data % i == 0:
                # print(data,'不是素数')
                flag = False
                int_list.append(i)
        for i in range(2,data):
            if data % i == 0:
                return int_list
            # else: 
            #     print(data,'是素数')
    return flag

# 找出指定范围内所有的素数
def range_sushu(data1,data2):
    data_list = []
    for num in range(data1,data2 + 1):
        # 素数大于 1
        if num > 1:
            for i in range(2,num):
                if (num % i) == 0:
                    break
            else:
                data_list.append(num)
                # print(num)
    print("{}:{}指定范围内的素数列表为:{}".format(data1,data2,data_list))
    return True

if __name__ == "__main__":
    # 基础要求
    number = input("请输入一个不大于1000的自然数:")
    flag = is_prime(int(number))
    if flag == True:
        print("{}是一个素数".format(int(number)))
    else:
        print("{}不是一个素数".format(int(number)))
        print("能整除该数的所有整数列表{}".format(flag))

    # 高级要求
    lim1,lim2 = eval(input("请输入两个不大于1000的自然数作为搜索范围:"))
    if lim1 <= lim2:
        range_sushu(lim1,lim2)
    else:
        range_sushu(lim2,lim1)
    # print(lim1,lim2)

结果

通过函数判断一个自然数是否为素数_数据_02