随笔:判断一个整数是否是质数,如果不是质数,那么因数表达式是什么

随笔:判断一个整数是否是质数,如果不是质数,那么因数表达式是什么

思路:

1、判断除了能被本身之外是否还能被其他非1之外的数字整除
2、如果可以被整除,那么被整除过后得到的商是否还可以继续被从其他数整除

while True:
    num = input('请输入一个大于1整数:')
    s = int(num)
    list1 = []
    while True:
        for i in range(2, int(s)+1):
            if s % i == 0:
                list1.append(i)
                s /= i
                break
        if int(s) == 1:
            break
    if list1 == [int(num)]:
        print(num+'是质数')
    else:
        print(num+' = ', end='')
        for j in range(0, len(list1)):
            if j != len(list1)-1:
                print(str(list1[j])+' * ', end='')
            else:
                print(str(list1[j]))
    assert_y_n = input('是否继续输入y/n:')
    if assert_y_n == 'n' or 'N':
        break

运算结果

请输入一个大于1整数:3
3是质数
是否继续输入y/n:y
请输入一个大于1整数:1050
1050 = 2 * 3 * 5 * 5 * 7
是否继续输入y/n:y
请输入一个大于1整数:10552
10552 = 2 * 2 * 2 * 1319
是否继续输入y/n:y
请输入一个大于1整数:1319
1319是质数
是否继续输入y/n:y
请输入一个大于1整数:105567
105567 = 3 * 7 * 11 * 457
是否继续输入y/n:y
请输入一个大于1整数:457
457是质数
是否继续输入y/n:y
请输入一个大于1整数:1114567890
1114567890 = 2 * 3 * 5 * 37152263
是否继续输入y/n:e
请输入一个大于1整数:37152263
37152263是质数
是否继续输入y/n:N

Process finished with exit code 0
posted @ 2020-11-04 16:04  caodingzheng  阅读(8)  评论(0编辑  收藏  举报