用c++输入10个整数存入数组,将数组中的素数存入另一个数组中.并遍历素数数组。
时间: 2023-03-14 07:10:58 浏览: 124
可以使用以下程序来实现:int main()
{
int arr[10], prime[10], i, j, k = 0;
// 将10个整数存入数组
for (i=0; i<10; i++)
{
printf("输入一个整数:");
scanf("%d", &arr[i]);
}
// 将数组中的素数存入另一个数组中
for (i=0; i<10; i++)
{
int flag = 0;
for (j=2; j<=arr[i]/2; j++)
{
if (arr[i]%j == 0)
{
flag = 1;
break;
}
}
if (flag == 0)
{
prime[k] = arr[i];
k++;
}
}
// 遍历素数数组
printf("素数数组中的元素:");
for (i=0; i<k; i++)
printf("%d ", prime[i]);
return 0;
}
相关问题
用c++写 【题目描述】 两个相差为2的素数称为素数对,如5和7,17和19等,本题目要求找出所有两个数均不大于n的素数对。 【输入】 一个正整数n(1≤n≤10000)。 【输出】 所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。
以下是使用C++编写的解答:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 判断是否为素数
bool isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
cin >> n;
vector<pair<int, int>> primePairs;
for (int i = 2; i <= n - 2; i++) {
if (isPrime(i) && isPrime(i + 2)) {
primePairs.push_back(make_pair(i, i + 2));
}
}
if (primePairs.empty()) {
cout << "empty" << endl;
} else {
for (const auto& pair : primePairs) {
cout << pair.first << " " << pair.second << endl;
}
}
return 0;
}
```
这段代码首先定义了一个函数`isPrime`用于判断一个数是否为素数。然后,通过输入一个正整数n,遍历从2到n-2的每个数,判断其是否为素数,并且与其相差2的数也是素数,如果是,则将这对素数存入`primePairs`数组中。最后,根据`primePairs`数组的情况进行输出。
注意:在C++中,我们使用`pair`和`vector`来存储素数对。`pair`是一个可以存储两个值的数据结构,而`vector`是一个动态数组,可以用来存储多个素数对。
/*请编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非
素数即指在大于1的自然数中,除了1和本身外没有其他因子的数。要求编写一个函数fun,功能是将所有大于1小于整数m的非素数存入xx所指数组中。
首先,我们可以编写一个判断素数的函数isPrime,该函数判断一个数是否为素数。然后,我们可以使用循环从2开始遍历到m-1,判断每个数是否为素数,如果不是素数,则将其存入xx所指数组中。
下面是具体的函数实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int num) {
if (num < 2) return false;
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) return false;
}
return true;
}
void fun(int* xx, int m) {
int count = 0;
for (int i = 2; i < m; i++) {
if (!isPrime(i)) {
xx[count++] = i;
}
}
}
int main() {
int m = 20; // 假设m为20
int xx[100] = {0}; // 假设数组长度为100
fun(xx, m);
for (int i = 0; i < 100; i++) {
if (xx[i] != 0) {
cout << xx[i] << " ";
}
}
return 0;
}
```
上述代码中,我们假设整数m为20,并假设存储非素数的数组长度为100。函数fun将所有大于1小于整数m的非素数存入xx所指数组中,并使用循环打印出非素数数组的内容。运行结果为:4 6 8 9 10 12 14 15 16 18。
阅读全文