我正在研究Sage。编写一个输入正整数n的函数,并返回可被17整除的n位正整数。确保考虑n = 1的情况。使用输入n = 1,2,5测试您的程序。
据我所知,例如,如果我输入n = 1,则意味着我需要检查0-9中可被17整除的所有数字。如果输入n = 2,则表示我需要检查0-99之间的所有数字,可以被17整除。
我不会想出一个计算n长度的通用公式,然后选择可被17整除的数字的正确范围。
def positive(n):
for n in range(0, 10**n):
if (n%17==0):
print n,
上面的代码与我合作,但它只是打印出可以被17整除的数字。我想知道如何算它们,所以我知道有多少数字可以被17整除。
答案 0 :(得分:4)
如何使用数论来简化问题,并使用
def positive(n):
return 10**n // 17 + 1
我相信Sage使用插入符号而不是双星号来取幂,所以你可以使用
10^n // 17 + 1
加号包含值0,当然可以被17整除。您可以使用更长的版本来检查,
def positive(n):
return len([x for x in range(10**n) if x % 17 == 0])