我正在研究 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 整除。
最佳答案
如何使用数论来简化问题,并使用
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])
关于python - 写一个函数,输入一个正整数n,返回能被17整除的n位正整数的个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39560861/