更新时间:2023-02-26 18:17:30
以下某些伪代码可能有帮助或无济于事
Here's some pseudocode that may or may not help
'''
This function takes a single argument n and returns either
1) a factor of n if n is not prime
2) False if n is prime
'''
def is_prime(n):
# "Check if it's even..."
if is_even(n):
# (do something)
else:
# "... and if not, check all the odd numbers up to the square root of the number"
for f in <something that generates odd numbers>:
if is_factor(f,n):
# (do something)
# Default case:
# n is odd, and
# none of the odd numbers up to sqrt(n) are factors of n
# (do something)
def get_n():
n = raw_input("What is the value of n? ")
return ((2 ** 67)-1) if n == 'm' else int(n)
n = get_n()
p = is_prime(n)
if p:
print("%d is not prime (e.g. factor=%d)" % (n, p))
else:
print("%d is prime")
请注意, is_even
和 is_factor
不是真正的函数,您必须自己实现它们或将其更改为等效操作.同样,<生成奇数的东西>
也不是真实的,
Note that is_even
and is_factor
are not real functions, you'd have to either implement them yourself or change them to equivalent operations. Also, <something that generates odd numbers>
isn't real either, same thing.
此外, get_n()
是一个小功能,提示用户输入整数并返回它.如果用户输入 m
(单个小写字符),则返回Mersenne 67(=(2 ^ 67)-1)
Also, get_n()
is a little function that prompts a user for an integer and returns it. If the user enters m
(the single, lower case character), then it returns Mersenne 67 (= (2^67) - 1)