开发一个python程序,提示用户输入大于2的整数。全无效的输入必须被拒绝,包括整数2或更少。

开发一个python程序,提示用户输入大于2的整数。全无效的输入必须被拒绝,包括整数2或更少。然后程序输出从2开始的所有素数,这些素数都小于用户输入的数字。

# _*_coding:utf-8 _*_
# @Time    :2018/10/25 13:27
# @Author  :mrgui
# @FileName: print_prime.py
# @Software: PyCharm


def is_prime(num):
    for i in range(2, num // 2 + 1):
        if num % i == 0:
            return False
    return True


if __name__ == '__main__':
    while True:
        n = eval(input("请输入一个数,判断是否为质数:"))
        if isinstance(n, int) and n > 2:
            break
        else:
            print('输入的数必须是一个大于2的整数...')
    for i in range(2, n):
        if is_prime(i):
            print(i)

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-11-07
def isprime(num,list_p):
  for _ in list_p:
    if num % _ ==0:
      return False
  list_p.append(num)
  return True

def primes(end,start=2):
  p=[2]
  n=start+1
  while n<=end:
    if isprime(n,p):
      yield n
    n+=1

try:
  n=0
  while n <= 2:
    n=int(input())
  for p in primes(n):
    print(p)
except:
  # no digit
  pass

第2个回答  2018-11-04
可以使用字符串str的isdigit方法判断字符串是否是一个仅有数字组成,也就是整数。如果是整数退出while循环,否则继续请求输入。
while True: x = raw_input('Input an integer: ') if x.isdigit(): break else: print 'Please input an *integer*'
相似回答