给定两个整数A、B,请求出大于等于A,小于等于B的所有绝对素数。输入一行,包含两个整数A、B,保证10<A<B<1000。用c++代码
时间: 2024-03-22 16:38:45 浏览: 52
基于C++的求素数
以下是使用 C++ 语言的代码实现:
```cpp
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
bool is_prime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int sum_of_digits(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n /= 10;
}
return sum;
}
int main() {
int a, b;
cin >> a >> b;
vector<int> absolute_primes;
for (int i = a; i <= b; i++) {
if (is_prime(i) && is_prime(sum_of_digits(i))) {
absolute_primes.push_back(i);
}
}
for (int i = 0; i < absolute_primes.size(); i++) {
cout << absolute_primes[i] << " ";
}
cout << endl;
return 0;
}
```
首先,我们定义了两个辅助函数。`is_prime(n)`用于判断一个数是否是质数,`sum_of_digits(n)`用于计算一个数的各个数位上的数字之和。
然后,我们读取输入的两个整数 A 和 B。接着,我们遍历 A 到 B 的每一个整数,如果这个数是质数并且它的各个数位上的数字之和也是质数,那么就将它加入到结果数组中。
最后,我们使用 `for` 循环将所有的绝对素数打印出来。
阅读全文