复制Markdown 展开
题目描述
如果一个两位数是素数,且它的数字位置经过对换后仍为素数,则称为绝对素数,例如 13。给定两个正整数 𝐴,𝐵,请求出大于等于 𝐴、小于等于 𝐵 的所有绝对素数。
输入格式
输入 1 行,包含两个正整数 𝐴 和 𝐵。保证 10<𝐴<𝐵<100。
输出格式
若干行,每行一个绝对素数,从小到大输出。
输入输出样例
输入 #1
11 20
输出 #1
#include<bits/stdc++.h>
using namespace std;
int prime(int n){//熟悉
int cnt=0;
for(int i=1;i<=n;i++){
if(n%i==0){
cnt++;
}//是因子++
}
if(cnt==2){//、、只有2个因子
return 1;//是
}
else{
return 0;//不是
}
}
int main(){
//int a[]{11,13,17,31,37,71,73,79,97};//[]就是这些数
int a,b;
cin>>a>>b;
for(int i=a;i<=b;i++){
if(prime((i%10)*10+i/10)&&prime(i)){//前面,如i=31,i%10=1*10=10,i/10=3;10+3=13,判断反过来=质数且本身是质数
cout<<i<<endl;//是
}
}
}
11 13 17