将整数的数字相乘并继续该过程会产生令人惊讶的结果,即产品序列始终以一位数字的形式到达。例如: 71535/155886424827144 达到一位数所需的产品数称为持久数 那个整数。因此,715和88的持久性数为3,而27持续性为2。 制作一个程序,找到持久性大于3的唯一两位数字? 这就是问题所在。
for i in range(10,100):
for l in range(i):
numbers = list(str(l))
num = int(numbers[0]) * int(numbers[1])
这就是我所拥有的。请帮忙
答案 0 :(得分:0)
每个人都认为这是一个糟糕的问题,所以我觉得回答并帮助你作弊是不好的:( 但这很有趣! :)并且解决问题是一个标志,你很聪明,嘿,并没有真正尝试是相反的迹象。
def newn(n):
numbers = [int(c) for c in str(n)]
new = 1
for i in numbers:
new *= i
digits = len(str(new))
return new, digits
for n in xrange(99,9,-1):
if persistence > 3:
print 'persistence %i, number %i' % (persistence, n + 1)
break
digits, persistence = 2, 0
while digits != 1:
persistence += 1
n, digits = newn(n)
答案 1 :(得分:0)
答案是77
,49
转到36
,转到18
,转到8
。
def multiply_digits(x):
total = 1
for digit in str(x):
total *= int(digit)
return total
for value in range(11, 100):
new_value = multiply_digits(value)
persistance = 1
while new_value >= 10:
new_value = multiply_digits(new_value)
persistance += 1
if persistance > 3:
print value