题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1411
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 using namespace std; 5 int m,n; 6 //iss(int x)函数的功能:判断x是否是素数 7 bool iss(int x) 8 { 9 for(int i=2;i*i<=x;i++) 10 { 11 if(x%i==0)return false; 12 } 13 return true; 14 } 15 /* 16 zss(int y)执行两个功能: 17 1.对 y求反序ny 18 2. 判断y和ny是否均为素数 19 */ 20 bool zss(int y) 21 { 22 int a[10],ly=y; 23 int i=0,ny=0,g=1; 24 while(ly) 25 { 26 a[i++]=ly%10; 27 ly=ly/10; 28 } 29 while(i>=0) 30 { 31 ny+=g*a[i-1]; 32 g*=10; 33 i--; 34 } 35 if(iss(y)&&iss(ny))return true; 36 else return false; 37 } 38 int main() 39 { 40 int b[10000]; 41 int j=0; 42 cin>>m>>n; 43 bool iszss=true; 44 for(int i=m;i<=n;i++)if(zss(i)) 45 { 46 b[j++]=i; 47 iszss=false; 48 } 49 for(int k=0;k<j-1;k++)cout<<b[k]<<","; 50 cout<<b[j-1]; 51 if(iszss)cout<<"No"; 52 return 0; 53 }
以上代码样例数据通过
然并卵。。。。。万里江山一片红。。。。。
不过自认为写了一个很NB的反序函数模版,自己写的,不知道没有更优的,无论几位数都可以随意反序。。。。
1 #include<iostream> 2 #include<cmath> 3 int a[10]; 4 using namespace std; 5 int main() 6 { 7 int y,g=1; 8 cin>>y; 9 int i=0,ny=0; 10 while(y) 11 { 12 a[i++]=y%10; 13 y=y/10; 14 } 15 while(i>=0) 16 { 17 ny+=g*a[i-1]; 18 g*=10; 19 i--; 20 } 21 cout<<ny; 22 }
着急有事,只能写这么多代码了。。下次再改。。。。