随笔:判断一个整数是否是质数,如果不是质数,那么因数表达式是什么
随笔:判断一个整数是否是质数,如果不是质数,那么因数表达式是什么
思路:
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