编写一个输入正整数n的函数,并返回可被17整除的n位正整数

时间:2016-09-18 17:54:33

标签: python sage

我正在研究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整除。

1 个答案:

答案 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])