Cartier @ 2022-11-20 17:33:24
#include<bits/stdc++.h>
using namespace std;
bool zhishu(int n){
for(int j=3;j<=sqrt(n);j=j+2){
if(n%j==0){return false;}}
return true;}
bool huiwen (int n){
int k=n;
int s=0;
while(k>=1){
s*=10;s+=k%10;
k=k/10;}
if(s==n){return true;}
return false;}
int main()
{
int a,b=0;
cin>>a>>b;
if(a%2==0){a++;}
if(b>10000000){b=10000000;}
for(int i=a;i<=b;i++){
if(huiwen(i)&&zhishu(i)){
cout<<i<<endl;}}
return 0;}
请问各位大佬们本题a至少5开始,那么排除了所有回文质数为偶数的可能,那为什么在筛选质数时不能从j=3
开始每次都除以奇数,为什么不会更快反而是全错了,不太懂?
by AfterFullStop @ 2022-11-20 17:37:53
@Cartier 但是回文数可能为偶数啊
by Cartier @ 2022-11-20 18:02:53
@LemonAndMelon 谢谢您,我搞明白了,如果我筛质数是只筛奇数倍数的,那么如8这种回文数它也被选进来,就错了!谢谢您!