这是我教授给我的任务。我不知道从哪里开始或做什么! 重点是使用循环来解决这个问题,我可以做循环,但这让我大吃一惊。
偶数和素数。
素数是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,...
总是这样吗?每个偶数都可以写成两个素数的总和吗?
我不知道我可以编辑这个! :)所以这就是我到目前为止所拥有的。我还没有测试它调试它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.
答案 0 :(得分:2)
不要担心作业难以理解。当教授打破它时,一步一步走。
答案 1 :(得分:-1)
素数(或素数)是a 自然数恰好有两个 不同的自然数除数:1 和它本身。
<强> A)强>
def is_prime(n): # Write a is_prime(n) function.
if n <= 1: # It should accept a positive integer n>1
return False
if n == 2: # 2 has 2 divisors 1 and itself satisfying definition
return True
i = 2 # Start from 2 and check each number to the sqrt(n)
while i < n**0.5: # sqrt(n) can be written as n**0.5
if n % i == 0: # If n is divisible by i, which is not 1 or itself,
return False # return False (not prime)
i+=1 # Increment i by 1 and check looping condition
return True # If loop breaks, return True (prime)
可以通过各种方式发现素材。这是最基本的一种,唯一的优化是检查的除数在n的根处停止,而不是将每个数字都检查为n。
最基本的可能是:
def is_prime(n):
if n < 2:
return False
for i in range(2,n):
if n % i == 0:
return False
return True
<强> B)强>
def prime_sum(n):
if n % 2 or n < 1: # if n is odd or less than 1 return invalid
return "invalid input"
p = 3
while n-p > 0:
if is_prime(p) and is_prime(n-p):
return (p, n-p) # if both conditions are met, return prime tuple
p+=2 # only check odd numbers
return "no answer found"