如果一个两位数是素数,且它的数字位看经过对换后仍为素数,则称为绝对素数,例如口 13,交换后为31,13和31都是素数,所以 13是绝对素数。 从键盘输入两个正整数 A、B,请输出大于等于 A、 小于等于 B 的所有绝对素数。 【输入格式】 输入 1行,包含两个正整数 A 和B。保证 10<A<B<100。 【输出格式】 若干行,每行一个绝对素数,从小到大输出。 【样例输入】 11 20 【样例输出】 11 13 17
时间: 2024-03-15 08:46:01 浏览: 22
好的,这是一个关于素数的问题,让我来帮你解决。以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
bool isPrime(int n) { // 判断是否为素数
if (n <= 1) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int A, B;
cin >> A >> B;
for (int i = A; i <= B; i++) { // 遍历 A~B 的每个数字
int a = i / 10, b = i % 10; // 拆分十位和个位数字
int rev = b * 10 + a; // 对换后的数字
if (isPrime(i) && isPrime(rev)) { // 判断是否为绝对素数
cout << i << endl;
}
}
return 0;
}
```
输入样例:
```
11 20
```
输出样例:
```
11
13
17
```
相关问题
如果一个两位数是素数,且它的数字位置经过对换后仍为素数,则称为绝对素数。 例如13,试编程求出所有两位数中的绝对素数。请用C++编写一个程序
以下是使用C++编写的程序,用于求解所有两位数中的绝对素数:
```cpp
#include <iostream>
#include <vector>
bool isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
bool isAbsolutePrime(int num) {
if (!isPrime(num)) {
return false;
}
int tens = num / 10;
int ones = num % 10;
int reversedNum = ones * 10 + tens;
return isPrime(reversedNum);
}
int main() {
std::vector<int> absolutePrimes;
for (int num = 10; num < 100; num++) {
if (isAbsolutePrime(num)) {
absolutePrimes.push_back(num);
}
}
std::cout << "所有的两位数中的绝对素数为:";
for (int prime : absolutePrimes) {
std::cout << prime << " ";
}
std::cout << std::endl;
return 0;
}
```
你可以将上述代码复制到C++编译器中运行,程序将输出所有的两位数中的绝对素数。
用函数编程,一个自然数是素数,且它的数字经过任意对换后仍为素数,则称为绝对素数。如13,打印出两位数中所有的绝对素数。c语言代码
```c
#include <stdio.h>
int is_prime(int num) {
if (num <= 1) return 0;
for (int i = 2; i * i <= num; ++i) {
if (num % i == 0) return 0;
}
return 1;
}
int is_permutation_prime(int num) {
int digits[10] = {0};
while (num > 0) {
digits[num % 10]++;
num /= 10;
}
for (int i = 2; i <= digits[1]; ++i) {
int permutation = i;
for (int j = 2; j <= 9; ++j) {
if (digits[j] > 0) {
permutation = permutation * 10 + j;
}
}
if (!is_prime(permutation)) {
return 0;
}
}
return 1;
}
void print_absolute_primes(int start, int end) {
for (int i = start; i <= end; ++i) {
if (is_prime(i) && is_permutation_prime(i)) {
printf("%d是绝对素数\n", i);
}
}
}
int main() {
print_absolute_primes(10, 99);
return 0;
}
```