Python - 让用户输入10个数字,然后只显示素数

时间:2018-02-28 10:05:04

标签: python python-3.x

如果可能,我需要你的帮助。我是Python的新手,但我对C#,java有很好的理解,现在已经开始学习python作为我学习计划的一部分。我无法完成我的任务之一,因为没有人知道我使用python,所以无法得到任何帮助。

我的任务是: “从给定的10个数字列表中找到素数。用户应输入10个数字” 有人可以帮帮我吗?提前致谢

3 个答案:

答案 0 :(得分:0)

非常简单,我根据你的要求为你制作这个程序,用户必须输入10个数字,程序才能找到它是否为素数。

试试这个:

for i in range(0, 10):
    num = int(input('Enter Number:'))
    if num > 1:
        # check for factors
        for i in range(2, num):
            if (num % i) == 0:
                print(num, "is not a prime number")
                print(i, "times", num // i, "is", num)
                break
        else:
            print(num, "is a prime number")

    # if input number is less than
    # or equal to 1, it is not prime
    else:
        print(num, "is not a prime number")

注意:在for循环中,如果您想在开始时输入输入,则用户输入10次,然后您也可以使用该输入,然后您可以运行该列表的循环。选择是你的! :)

希望这对你有所帮助! :)

答案 1 :(得分:0)

要获得10个数字的输入,只需将input()放入for循环中,如下所示:

for i in range (0,11):
    input("Number")

除此之外,您需要一个函数来调用您的号码是否为素数

def isPrime(n):
   for i in range(2,int(sqrt(n))+1):
          if n%i==0:
              return False
   return True

答案 2 :(得分:0)

from math import sqrt; from itertools import count, islice
import sys

def is_prime(n):
    return n > 1 and all(n%i for i in islice(count(2), int(sqrt(n)-1)))

def primer(*args):
    return '-'.join([str(x) for x in args if is_prime(x)])

while True:
    try:
        user_input = input('Enter any amount of numbers seperating them with a comma; or enter quit to quit: ')
        if any(user_input==x for x in ("quit", "q", "exit", "e")):
            sys.exit()
        our_list = [int(x) for x in user_input.split(',')]
        print(primer(*our_list))
    except ValueError:
        print('Please only enter numbers')

通常你应该先尝试,破解代码然后再问;但是嘿,我很无聊,所以我为你做了一个例外,这是整个代码。 :3