⑴ 编写函数int rev_prime(int m,int n,int x[]),求区间m到n中的所有整数的反序数,将反序数中的素数存入数组x中,函数的返回值是素数的个数。 反序数:将原数各位数字颠倒后的数,例如:123的反序数为321,70的反序数为7。 ⑵ 编写main函数,接收从键盘输入的m和n的值,调用函数reverse求m到n之间的所有元素的反序数中的素数,将结果数组按以下要求写到输出文件“out.txt”中。
时间: 2024-02-03 09:12:49 浏览: 103
⑴ 反序数和判断素数的函数实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
// 判断素数
bool is_prime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
// 计算反序数中的素数
int rev_prime(int m, int n, int x[]) {
int count = 0;
for (int i = m; i <= n; i++) {
int temp = i, rev_num = 0;
while (temp) {
rev_num = rev_num * 10 + temp % 10;
temp /= 10;
}
if (is_prime(rev_num)) {
x[count++] = rev_num;
}
}
return count;
}
```
⑵ main 函数实现:
```c++
#include <fstream>
#include <cstring>
int main() {
int m, n;
cin >> m >> n;
int x[n - m + 1];
int count = rev_prime(m, n, x);
ofstream fout("out.txt");
for (int i = 0; i < count; i++) {
fout << x[i] << " ";
}
fout.close();
return 0;
}
```
完整代码如下:
阅读全文