这是我的教授给我的任务。我不知道从哪里开始或做什么! 重点是使用循环来解决这个问题,我可以做循环,但这是我的头脑。蟒蛇 - 总理命令为偶数
偶数和素数。
素数是指1和它自己唯一的除数。前三名中有2,3,5,7和11名。注意 '是首要的'纯粹是一个乘法条件 - 它与加法无关。所以它可能是 令人惊讶的是,如果我们开始列出偶数,它们似乎是两个素数的总和(加法!)。 4 = 2 + 2,6 = 3 + 3,8 = 5 + 3,10 = 3 + 7,12 = 7 + 5,14 = 7 + 7,16 = 13 + 3,...
情况总是如此吗?每个偶数都可以写成两个素数的总和吗?
- 写一个is_prime(n)函数。 它应接受一个正整数n> 1作为输入,并输出True或False,取决于n是否是 是质数。用一个循环来检查是否有任何整数d,其中d表示分数n。 我会建议一个while循环 - 仔细考虑循环的条件,以及当你想在循环内改变 这个条件。 (为您的条件使用布尔值)。
- 写一个prime_sum(n)函数。 它应该接受一个偶数n> 1作为输入,并通过循环搜索质数p & q,其中p + q = n。提示:从p = 3开始。如果(p)和(n-p)是素数,则完成。如果没有,请设置p + = 2并重试。 确保你不要永远搜索!
- 主。
- 向用户询问偶数n。不断询问他们,直到他们给你一个正数。
- 搜索加号p & q,并将它们打印出来(如果它们存在)或者说它们不存在。
- 询问用户他们是否希望尝试与另一个,甚至让他们继续,直到他们退出。
我不知道我可以编辑本! :)所以这是我迄今为止。我还没有对它进行测试,以便对它进行调试。b/c我想把它全部弄清楚,当出现错误时我会解决它们,但是如果你看到任何直接的问题,请告诉我。
def is_prime(n):
d=2
while n>1 and d<n**0.5:
if n%2==0:
c=False
d+=1
return c
def prime_sum(n):
p=3
while n>1:
q=n-p
if q<=0:
p+=2
q=n-p
is_prime(q)
else:
is_prime(q)
is_prime(p)
while True:
print("The prime summands of", n, "are", p, "and", q)
while False:
print("There are no prime summands of", n)
def main():
n=eval(input("Gimme an even number please: "))
while True:
n=eval(input("That is not a positive even number. Try again: "))
#not sure how to combine yet, but I am still finishing.
#will edit again when I have it all down.
那么你尝试过这么远吗? – iluxa 2011-03-29 01:41:44
“我可以做的循环”向我暗示你理解提示,但我想不是这样。如果不是组织循环的方式,那么赋值中究竟有什么不明白的地方? – senderle 2011-03-29 01:43:00
什么问题?你有步骤。编写is_prime函数。然后继续下一步。我们不会为你做你的功课。你必须编写你自己的代码。 – 2011-03-29 01:43:11