I'm trying to create a script that will accept a user entered integer and find only one set of prime numbers that add up to that integer but need some help. The script is supposed to only accept even numbers, and if it encounters an odd number it needs to exit with a "please enter only even numbers" message. I've made some progress on the script, but it still isnt quite rite.
I already tried to code an error message for uneven input numbers, and it sort of works, but see the output below. Instead of displaying one "is not even" message, it displayed several... why?
How can I get it to display just one? (I barely know what i'm doing here... but i'm trying hard to learn)
Heres my code as it is now:
Here is the output:
Enter number to test: 62
62 = 25 + 37
Found two prime numbers that sum to 62
Enter number to test: 67
67 is not even. Please enter only even numbers.
67 is not even. Please enter only even numbers.
67 is not even. Please enter only even numbers.
67 is not even. Please enter only even numbers.
Thanks! 8)
I already tried to code an error message for uneven input numbers, and it sort of works, but see the output below. Instead of displaying one "is not even" message, it displayed several... why?
How can I get it to display just one? (I barely know what i'm doing here... but i'm trying hard to learn)
Heres my code as it is now:
Code:
import math
def is_prime(p):
prime = True
if p%2 == 0:
print n,"is not even. Please enter only even numbers."
prime = False
else:
for i in range(3, math.ceil(math.sqrt(p/2)), 2):
if p % i == 0:
prime = False
break
print n,"is not even. Please enter only even numbers."
return prime
n = int(raw_input('Enter number to test: '))
for p in range(3, n/2, 2):
if is_prime(p) and is_prime(n-p):
print n, '= %d + %d' % (p, n-p)
print "Found two prime numbers that sum to",n
break
Enter number to test: 62
62 = 25 + 37
Found two prime numbers that sum to 62
Enter number to test: 67
67 is not even. Please enter only even numbers.
67 is not even. Please enter only even numbers.
67 is not even. Please enter only even numbers.
67 is not even. Please enter only even numbers.
Thanks! 8)
Comment