卡在这个问题上,我找不到答案,我的代码一直失败。
编写一个名为specialPrime的函数,该函数接受一个整数作为参数,如果该整数是质数且整数平方的长度小于六位数,则返回True;如果不是质数或整数平方大于六位数,则返回False。编写一个程序,提示用户输入一个整数,并使用您的specialPrime函数来确定该整数是否特殊。
示例交互输入一个数字: 140不是一个特殊的质数。输入一个数字: 89 89是一个特殊的质数。
我的代码
def specialPrime(isPrime,G6):
isPrime= int(input('Enter a number:')
if isPrime < 2 return False
elif isPrime == 2
return True
for n in range(2, x)
if x % n ==0:
return False
return True
G6 = len(isPrime**2)
if G6 > 6: return False
else
return True
while True
print( isPrime + 'is a special number')
else
print( isPrime + 'is not a special prime')
`
发布于 2018-07-16 10:04:35
您可以对代码进行修改,以便针对special_prime(x)
的两个需求分别使用几个助手函数
def squared_less_than_six_digits(x):
return len(str(x**2)) < 6
def is_prime(x):
if x < 2:
return False
else:
for n in range(2, x):
if x % n == 0:
return False
return True
def special_prime(x):
return is_prime(x) and squared_less_than_six_digits(x)
def main():
user_input = 0
while True:
try:
user_input = int(input("Please enter an integer:"))
except ValueError:
print("Error: You did not enter a integer. Please try again.")
continue
else:
print("You entered the integer {}. Its square is {}.".format(user_input, user_input**2))
break
if special_prime(user_input):
print("It is a special prime.")
else:
print("It is not a special prime.")
if __name__ == "__main__":
main()
在上试用上面的代码
测试:
平方小于六位数的
请输入一个整数: 2您输入的是整数2。它的平方是4。它是一个特殊的素数。平方大于或等于六位数的
请输入一个整数: 317您输入的是整数317。它的平方是100489。它不是一个平方小于六位数的特殊prime.
请输入一个整数: 1您输入的是整数1。它的平方是1。它不是一个平方大于或等于六位数的特殊prime.
请输入一个整数: 318您输入的是整数318。它的平方是101124。这不是一个特殊的素数。
https://stackoverflow.com/questions/51353398
复制相似问题