P1217求助

学术版

我也卡了很久
by 初音ミク_Miku @ 2018-06-23 22:15:53


现在还没解决
by 初音ミク_Miku @ 2018-06-23 22:16:06


真的没人吗
by clkai @ 2018-06-24 14:10:11


```cpp #include<cstdio> #include<cmath> #include<iostream> #include<algorithm> using namespace std; int l,r,now = 2; int Creatpalindrome(int n) { if (n<10){ switch(n){ case 2:now=3;return 2; case 3:now=5;return 3; case 5:now=7;return 5; case 7:now=9;return 7; case 9:now=10;return 11; } } int wn = (int)(log(n*1.0)/log(10*1.0)); int gn = n/(int)(pow(10*1.0,wn)); int ret = 0; switch (gn){ case 2: case 4: case 6: case 8: now = (gn+1)*(int)pow(10*1.0,wn); ret = now*(int)pow(10*1.0,wn)+(gn+1); ++now; return ret; case 5: now = 7*(int)pow(10*1.0,wn); ret = now*(int)pow(10*1.0,wn)+7; ++now; return ret; } int sumn = 0; ret = n*(int)pow(10*1.0,wn); n /= 10; while (n) { sumn = sumn*10+n%10; n /= 10; } ++now; return ret+sumn; } bool Isprime(int x) { for (int i=3; i*i<=x; i+=2) { if (x%i==0) return false ; } return true; } int main() { cin>>l>>r; for (int i=l; i<=r; ) { i = Creatpalindrome(now); if (i>=l&&i<=r&&Isprime(i)) { cout<<i<<endl; } } return 0; } #include<iostream> using namespace std; bool reserve(int k){ int a[10],i=0; while (k>0){ a[i]=k%10; k/=10; i++; } for(int j=0;j<i;j++)if(a[j]!=a[i-j-1]){ return 0; } return 1; } bool length(int k){ if(k>=10&&k<100&&k!=11||k>=1000&&k<10000||k>=100000&&k<1000000||k>=10000000&&k<100000000){ return 0; } return 1; } bool prime(int k){ for(int i=3;i*i<=k;i+=2)if(k%i==0){ return false; } return true; } int main(int argc, char const *argv[]){ int a,b,cnt=0; cin>>a>>b; if(a%2==0){ cnt++; } for(int i=a+cnt;i<=b;i+=2){ if(reserve(i)&&length(i)&&prime(i)){ cout<<i<<endl; } } return 0; } ```
by JAMERES86 @ 2018-07-09 10:16:43


# 上面搜索下面暴力
by JAMERES86 @ 2018-07-09 10:17:13


有可能是空格
by JAMERES86 @ 2018-07-09 10:17:53


|