Python 3.x 尽管之前的实现工作正常,但多因子计算器仍失败
首先,定义如下: 多整除数是一个整数,其中数字的前n位(从左到右)完全可被n整除。例如,整数141是可多除的,因为:Python 3.x 尽管之前的实现工作正常,但多因子计算器仍失败,python-3.x,Python 3.x,首先,定义如下: 多整除数是一个整数,其中数字的前n位(从左到右)完全可被n整除。例如,整数141是可多除的,因为: 1%1==0 14%2==0 141%3==0 我正在研究一个递归的可多除性检查器,给定一个数,它将检查该数是否可多除,如果不可多除,则每隔一个数递归检查一次,直到它到达一个可多除的数为止。 不幸的是,我的代码没有按我希望的方式工作。有趣的是,当我输入一个已经可以被多次整除的数字时,它会完成它的工作并输出这个可以被多次整除的数字。当我输入一个不可多除的数字时,如13,就会出现
- 1%1==0
- 14%2==0
- 141%3==0
def next_polydiv(num):
number = str(num)
if num >= 0:
i = 1
print(i)
while i <= len(number):
if int(number[:i]) % i == 0:
i += 1
print(i)
else:
i = 1
print(i)
num += 1
print(num)
else:
return num
else:
print("Number must be non-negative")
return None
def next_polydiv(num):
number=str(num)
如果num>=0:
i=1
印刷品(一)
而我的错误是,在递增num之后,您没有更新number
以下是工作代码:
def next_polydiv(num):
number = str(num)
if num >= 0:
i = 1
print(i)
while i <= len(number):
if int(number[:i]) % i == 0:
i += 1
print(i)
else:
i = 1
print(i)
num += 1
print(num)
number = str(num) # added line
else:
return num
else:
print("Number must be non-negative")
return None
def next_polydiv(num):
number=str(num)
如果num>=0:
i=1
印刷品(一)
而我认为另一个好问题是,如果你不允许重复数字。在这种情况下,base 10中的唯一解决方案是381654729
。解决方案是相当稀疏的,直到你达到17个基数,它有1000多个解决方案,第一个是:157B4893FDA62GCE
。