C++while循环判断对称素数
时间: 2023-10-09 19:09:16 浏览: 130
使用while循环设计一个程序,用户在文本框中输入一个整数n,单击“筛选素数”按钮,程序将找出3~n的所有素数并在列表框中输出。
5星 · 资源好评率100%
可以使用以下代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
// 判断是否为素数
bool isPrime(int n) {
if (n < 2) return false;
int sqrt_n = sqrt(n);
for (int i = 2; i <= sqrt_n; i++) {
if (n % i == 0) return false;
}
return true;
}
// 判断是否为对称数
bool isSymmetric(int n) {
int num = n, reverse_num = 0;
while (num > 0) {
reverse_num = reverse_num * 10 + num % 10;
num /= 10;
}
return reverse_num == n;
}
int main() {
int n;
cout << "请输入一个整数n:" << endl;
cin >> n;
int count = 0;
int i = 2;
while (count < n) {
if (isPrime(i) && isSymmetric(i)) {
count++;
cout << i << " ";
}
i++;
}
cout << endl;
return 0;
}
```
其中,isPrime函数用于判断一个数是否为素数,isSymmetric函数用于判断一个数是否为对称数。在主函数中,用while循环依次判断每个数字是否既是对称数又是素数,如果是,则输出该数字,并将计数器加1,直到输出了n个对称素数为止。
阅读全文