如果您想让您的计算机跟踪序列中超过 300,000,000 个元素,如果每个元素都是 4 字节整数,那么您将需要至少 300,000,000 * 4 字节或超过 1.1GB 的空间来存储所有值。我假设生成序列也需要很长时间,因此每次用户想要一个值时再次生成整个序列也不是最优的。我对您如何尝试准确解决此问题感到有些困惑。
从用户那里获取一个值很简单:你可以使用val = input("What is your value? ")
whereval
是你存储它的变量。
编辑:
这种方式似乎是一种快速而简单的方法,每个值都有合理数量的步骤(除非该值是素数......但现在让这个概念保持简单):您需要小于或的整数等于 n ( start_int = n ** .5
) 的平方根,然后从那里测试下面的每个整数,看看它是否除以 n,首先转换start_int
为一个整数start_int = int(start_int)
(它给你 start_int 的下限),像这样:while (n % start_int) != 0: start_int = start_int - 1
,减一,然后然后设置b = start_int
。类似于 find 的东西d
,但你必须弄清楚那部分。请注意,这%
是模运算符(如果您不知道那是什么,可以阅读它,谷歌:'modulus python'),并且**
是求幂。然后,您可以使用return
陈述。您的函数看起来像这样(以#
注释开头的行,python 跳过它们):
def find_number(value):
#using value instead of n
start_int = value ** .5
start_int = int(start_int)
while (n % start_int) != 0:
#same thing as start_int = start_int - 1
start_int -= 1
b = start_int
#...more code here
semiperimeter = b + d
return semiperimeter
#Let's use this function now!
#store
my_val = input("Enter a value: ")
my_number = find_number(my_val)
print my_number
有很多 Python 入门指南,我建议您在解决此类问题之前先阅读其中的指南。如果您已经知道如何使用另一种语言进行编程,您可以浏览 Python 语法指南。
如果有帮助,请不要忘记选择此答案!