chifeng123 @ 2024-10-31 12:19:27
#include<iostream>
#include<cmath>
using namespace std;
int a(int n)
{
int b=sqrt(n);
for(int i=2;i<=b;i++)
{
if(n%i==0)
{
return 0;
}
}
return 1;
}
int main()
{
int w,v,k=0;
int s;
cin>>w>>v;
for(int i=w;i<v;i++)
{
k=0;
if(a(i)==1)
{
s=i;
while(s!=0){
k=k*10+s%10;
s=s/10;
}
if(k==i)
{
cout<<i<<endl;
}
}
}
return 0;
}
by hwk6 @ 2024-10-31 12:54:41
@chifeng123 因为他善
by CZY880201 @ 2024-10-31 13:04:19
额,TLE的根本原因还是时间复杂度不对
你想想,a=1 ,b=100000000,再叠加你质数和回文数所需的循环,TLE...
by CZY880201 @ 2024-10-31 13:07:48
要想在算法界混下去,时间得找对
分析两个性质,1.是偶数的数但不为二,你就跳过吧2.是个位是5或0的数但不为5,跳过吧
在把printf,scanf加上
#include <bits/stdc++.h>
using namespace std;
bool ch1(int x)
{
int a=x,b=0;
while(a!=0)
{
b=b*10+a%10;
a=a/10;
}
if(b==x)return 1;
return 0;
}
bool ch2(int x)
{
for(int i = 2;i <=sqrt(x);i++)
{
if(x%i==0)
{
return 0;
}
}
return 1;
}
int main(){
int n,m;
cin >>n>>m;
for(int i = n;i <= m;i++)
{
if(i%2==0&&i!=2)
{
continue;
}
if(i%5==0&&i!=5)
{
continue;
}
if(ch1(i)&&ch2(i))
{
printf("%d\n",i);
}
}
return 0;
}
by chifeng123 @ 2024-11-01 12:04:25
@CZY880201 谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢
by wc12345 @ 2024-11-01 12:13:36
@chifeng123 因为你好厉害(·-·),做对了
by CZY880201 @ 2024-11-01 13:05:08
壶关