C++语言编写:输入10个整数存入数组,将数组中的素数存入另一个数组中,并遍历素数数组
时间: 2023-03-16 10:43:44 浏览: 363
可以使用以下代码:int[] arr1 = new int[10];
int[] arr2 = new int[10];
int j = 0;// 循环输入10个整数存入数组arr1
for (int i = 0; i < 10; i++) {
arr1[i] = 输入的整数;
}// 将数组arr1中的素数存入数组arr2
for (int i = 0; i < 10; i++) {
if (是否是素数) {
arr2[j] = arr1[i];
j++;
}
}// 遍历素数数组arr2
for (int i = 0; i < j; i++) {
System.out.println(arr2[i]);
}
相关问题
编写函数fun 这是一道数学题,题目的意思是将所有大于1小于整数m的质数存入数组xx中。
以下是一个 C++ 的实现,可以将大于1小于整数m的质数存入数组xx中:
```cpp
void fun(int m, int xx[]) {
int k = 0;
for (int i = 2; i < m; i++) {
bool is_prime = true;
for (int j = 2; j <= sqrt(i); j++) {
if (i % j == 0) {
is_prime = false;
break;
}
}
if (is_prime) {
xx[k] = i;
k++;
}
}
}
```
该函数使用了简单的质数判断方法,即从2到i的平方根遍历,如果i能被整除,则不是质数,否则是质数。该方法并不是最优解,但对于较小的m值,可以满足要求。
用C++编写:先设计一个函数bool isPrime(int num),用于判断一个数num是否是质数。 (2) 再设计一个函数(void getPrimeFactor(int n, int *p) )对一个正整数n进行质因数分解,其结果通过指针变量p存放到一个数组a[10]中。
以下是代码实现:
```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 getPrimeFactor(int n, int *p) {
int index = 0;
for (int i = 2; i <= n; i++) {
while (n % i == 0 && isPrime(i)) {
p[index++] = i;
n /= i;
}
}
}
int main() {
int n = 36;
int a[10] = {0};
getPrimeFactor(n, a);
for (int i = 0; i < 10; i++) {
if (a[i] == 0) break;
cout << a[i] << " ";
}
return 0;
}
```
首先,isPrime函数用于判断一个数是否为质数。如果num小于2,直接返回false;否则,从2开始遍历到num的平方根,如果存在一个数能够整除num,则num不是质数,返回false。如果所有数都不能整除num,则num是质数,返回true。
其次,getPrimeFactor函数用于对一个正整数n进行质因数分解,将结果存放到数组p中。在函数中,从2到n遍历每个数i,如果i是n的因数且i为质数,就将i存入p数组中,并将n除以i,继续寻找下一个质因数。
最后,主函数中调用getPrimeFactor函数,将36作为参数传入,并遍历输出存放结果的数组a。
阅读全文
相关推荐














