【发布时间】:2019-05-26 06:10:38
【问题描述】:
我想编写一个接收 10 个条目的程序,最后它应该在输出中打印具有最多素因数的数字及其素因数的数量。而且,如果某些输入具有相同的条件,则程序将打印最大的一个。
我编写的代码执行了除最终条件之外的所有条件。
我应该如何为两个数字具有相同数量的素因子的情况编写代码(当我希望更大的数字成为我的输出时)?
例如,678 和 84 都具有 3 素因子。我的代码输出为84,而我希望输出为678(更大的数字)。
输入: 123 43 54 12 76 84 98 678 543 231
正确的输出: 678 3
但我的输出: 84 3
a = [0,0,0,0,0,0,0,0,0,0]
#a = [123,43,54,12,76,84,98,678,543,231]
b = [0,0,0,0,0,0,0,0,0,0]
def is_first (number):
Prime_number= 0
for m in range(1, (number //2)+1, 1):
if number % m == 0:
Prime_number += 1
if Prime_number > 1:
is_prime = 0
else:
is_prime = 1
return is_prime
for i in range(0,10,1):
a[i] = input()
for j in a:
numbers= 0
for k in range(2, int(j)//2, 1):
if int(j) % k == 0:
if is_first (k) == 1:
numbers += 1
b[a.index(j)] = numbers
index_of_same = [i for i, e in enumerate(b) if e == max(b)]
n = []
for t in index_of_same:
n.append(a[t])
print(str(max(n))+ ' ' + str(max(b)))
【问题讨论】:
标签: python-3.x