scx2129 @ 2023-09-29 14:27:12
#include<bits/stdc++.h>
using namespace std;
bool zhishu(int n)
{
if (n < 2) return 0;
for (int i = 2; i * i <= n; ++i)
{
if (n % i == 0) return 0;
}
return 1;
}
bool fanzhuan(int n)
{
int a = 0;
int b = n;
while (n != 0)
{
a = a * 10 + n % 10;
n /= 10;
}
if (b != a) return 0;
return 1;
}
int main()
{
int a, b,flag=0;
cin >> a >> b;
for (int i = a; i < b; i++)
{
if (zhishu(i) && fanzhuan(i))
{
cout << i << endl;
}
}
return 0;
}
by Kniqht @ 2023-09-29 14:31:12
暴力不了罢,看看题解突然发现我不会橙题自闭了
by thinkerliu @ 2023-09-29 14:38:55
打表。。。
by scx2129 @ 2023-09-29 15:16:27
@Kniqht 题解看不太懂,人麻麻了
by scx2129 @ 2023-09-29 15:16:58
@thinkerliu 没懂什么意思,求解
by thinkerliu @ 2023-09-29 15:42:47
用高复杂度的代码(如你的)提前把所有可能的答案算出来存好,要时直接取(不过我发现好像多的存不下。。。)
by abyss_Gavin @ 2023-10-04 10:02:57
可以用数组来表示数去找互文数,去除两端是偶数的和位数是偶数的数
by hmy_ddxw__awa @ 2023-10-04 22:23:33
我去我跟你代码一样
#include<bits/stdc++.h>
using namespace std;
bool pdzs(int n){
if(n==2) return true;
if(n%2==0||n<2) return false;
else{
for(int i=3;i*i<=n;i+=2){
if(n%i==0) return false;
}
return true;
}
}
bool pdhws(int n){
int x=0;
int s=n;
while(s>0){
x=x*10+s%10;
s=s/10;
}
if(x==n) return true;
else return false;
}
int main(){
int a,b;
scanf("%d%d",&a,&b);
for(int i=a;i<=b;i++){
if(pdzs(i)&&pdhws(i)){
printf("%d\n",i);
}
}
return 0;
}