输入几个数,把素数找出,由小到大排序输出。
时间: 2023-05-24 21:06:06 浏览: 98
以下是Python代码实现:
```python
def is_prime(n):
"""判断是否为素数"""
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
# 输入多个数
nums = input("请输入多个数,以空格分隔:").split()
# 筛选出素数并排序
primes = []
for num in nums:
if is_prime(int(num)):
primes.append(int(num))
primes.sort()
# 输出结果
if primes:
print("素数有:", end="")
for prime in primes:
print(prime, end=" ")
else:
print("没有素数。")
```
程序运行效果示例:
```
请输入多个数,以空格分隔:3 8 2 7 10 19 6
素数有:2 3 7 19
```
相关问题
输入几个数,把素数找出,由小到大排序输出。c语言编写
#include <stdio.h>
// 判断一个数是否为素数
int is_prime(int n)
{
if (n <= 1) {
return 0;
}
int i;
for (i = 2; i * i <= n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main()
{
int nums[100];
int n, i, j;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
// 找出所有素数
int primes[100];
int len = 0;
for (i = 0; i < n; i++) {
if (is_prime(nums[i])) {
primes[len++] = nums[i];
}
}
// 冒泡排序,由小到大排序
for (i = 0; i < len - 1; i++) {
for (j = 0; j < len - i - 1; j++) {
if (primes[j] > primes[j + 1]) {
int temp = primes[j];
primes[j] = primes[j + 1];
primes[j + 1] = temp;
}
}
}
// 输出所有素数
for (i = 0; i < len; i++) {
printf("%d ", primes[i]);
}
printf("\n");
return 0;
}
编写程序,从任意n个数中找出素数,计算素数之和,并按从大到小顺序排序。 统 【输入形式】输入分2行:第一行为n的值,第二行为n个整数; 【输出形式】输出分2行:第一行为素数之和,第二行为素数排序结果。 使用c++解决问题
在C++中,你可以通过以下几个步骤编写程序来解决这个问题:
1. 定义一个函数`isPrime(int num)`来判断一个数是否是素数。这个函数通常会检查该数是否能被小于它的平方根的所有整数整除。
```cpp
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; ++i)
if (num % i == 0)
return false;
return true;
}
```
2. 写一个主函数,首先读取用户输入的n和n个整数。然后创建一个数组存储这n个数,遍历数组并找出素数,将素数添加到`primeSum`变量中,并记录它们的位置。
```cpp
int main() {
int n;
std::cin >> n;
int numbers[n];
for (int i = 0; i < n; ++i) {
std::cin >> numbers[i];
if (isPrime(numbers[i]))
primeSum += numbers[i]; // 素数之和
}
```
3. 排序素数列表,可以创建一个新的vector专门存放素数,并使用`std::sort`对素数进行降序排列。
```cpp
std::vector<int> primes;
for (int i = 0; i < n; ++i) {
if (isPrime(numbers[i])) {
primes.push_back(numbers[i]);
}
}
std::sort(primes.begin(), primes.end(), std::greater<int>()); // 降序排序
```
4. 输出结果。先打印素数之和,再打印排序后的素数列表。
```cpp
std::cout << "素数之和: " << primeSum << "\n";
for (const auto& prime : primes) {
std::cout << prime << " ";
}
std::cout << "\n";
return 0;
}
```
阅读全文