编写函数int gmval (int m int ×口 的数组年, ,函数返回x指向数组中保存的素数个数。 int y[J), 完成下列功能:将小于整数n的所有素数依次保存到x指向的数组中,将这些素数的反序数依次保存到y指向 2.编写main函数,输入整数m,调用gmval函数找出小于n的所有素数及亡们的反序数,并将其存放到相应的数组中。在main西数中将找到的所有素数和它们的反序 数输出到屏幕上, 其中第 一行为小于口的所有素数, 用空格隔开, 二行为第一行对应的反序数
时间: 2024-02-12 09:04:25 浏览: 70
好的,以下是对应的C++代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
// 判断是否是素数
bool is_prime(int num) {
if(num < 2) return false;
for(int i = 2; i <= sqrt(num); i++) {
if(num % i == 0) return false;
}
return true;
}
// 计算某个数的反序数
int reverse(int num) {
int res = 0;
while(num) {
res = res * 10 + num % 10;
num /= 10;
}
return res;
}
// 计算小于n的所有素数及它们的反序数
int gmval(int n, int x[], int y[]) {
int cnt = 0;
for(int i = 2; i < n; i++) {
if(is_prime(i)) {
x[cnt] = i;
y[cnt] = reverse(i);
cnt++;
}
}
return cnt;
}
int main() {
int n;
cin >> n;
int x[100], y[100];
int cnt = gmval(n, x, y);
// 输出所有的素数
for(int i = 0; i < cnt; i++) {
cout << x[i] << " ";
}
cout << endl;
// 输出所有素数的反序数
for(int i = 0; i < cnt; i++) {
cout << y[i] << " ";
}
cout << endl;
return 0;
}
```
注意:这里假设输入的n不超过100,数组大小为100。如果n过大,则需要将数组大小调整为更大的值,否则会出现数组越界的错误。
阅读全文