python键盘输入 n 个大于零的整型数据,编程输出其中所有的素数及素数的个数
时间: 2024-03-06 19:48:23 浏览: 114
好的,我可以帮你解决这个问题。下面是代码实现:
```python
import math
n = int(input("请输入整数的个数:"))
nums = []
for i in range(n):
num = int(input("请输入第%d个整数:" % (i+1)))
nums.append(num)
prime_nums = []
count = 0
for num in nums:
if num <= 1:
continue
is_prime = True
for i in range(2, int(math.sqrt(num))+1):
if num % i == 0:
is_prime = False
break
if is_prime:
prime_nums.append(num)
count += 1
print("所有的素数为:", prime_nums)
print("素数的个数为:", count)
```
代码的思路是首先读入 n 个整数,然后逐个判断每个整数是否是素数。如果是素数,则加入 prime_nums 数组中,并且素数的个数 count 加 1。最后输出所有的素数和素数的个数。
需要注意的是,判断素数的时候可以优化,只需要判断 2 到 sqrt(num) 的整数即可,因为超过这个范围的因子肯定是成对出现的,不需要再次判断。
相关问题
键盘输入 n 个大于零的整型数据,编程输出其中所有的素数及素数的个数。
以下是使用Python编写的代码:
```python
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
n = int(input("请输入整数个数:"))
nums = []
for i in range(n):
num = int(input("请输入第{}个整数:".format(i+1)))
nums.append(num)
prime_nums = []
for num in nums:
if is_prime(num):
prime_nums.append(num)
print("所有的素数为:", prime_nums)
print("素数的个数为:", len(prime_nums))
```
代码首先定义了一个函数`is_prime`,用于判断一个数是否为素数。接下来,通过键盘输入获取整数个数`n`和`n`个整数存储在列表`nums`中。然后,遍历`nums`列表,对每个整数进行素数判断,将素数存储在列表`prime_nums`中。最后,输出`prime_nums`列表和其长度,即为所有素数和素数的个数。
用Python写出键盘输出n个大于零的整型数据,编程输出其中所有的素数及素数的个数
可以使用以下代码实现:
```python
import math
n = int(input("请输入数字个数:"))
nums = []
for i in range(n):
num = int(input("请输入第%d个数字:" % (i + 1)))
if num > 0:
nums.append(num)
# 判断是否为素数
def is_prime(num):
if num == 1:
return False
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
prime_nums = []
for num in nums:
if is_prime(num):
prime_nums.append(num)
print("所有素数为:", prime_nums)
print("素数个数为:", len(prime_nums))
```
解释一下代码:
首先通过输入获取用户输入的数字个数和每个数字,将大于零的数字添加到列表 `nums` 中。
然后定义一个函数 `is_prime`,用于判断一个数字是否为素数。判断方法是利用了素数的定义:只能被 1 和本身整除。具体实现是从 2 到该数的平方根遍历每个数,如果能被整除,则该数不是素数。
最后遍历 `nums` 列表中的每个数字,判断是否为素数,如果是,则添加到 `prime_nums` 列表中。输出所有素数和素数个数。
阅读全文