1411区间内的真素数

题目链接: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 }

着急有事,只能写这么多代码了。。下次再改。。。。

 

posted @ 2017-12-12 10:54  TFLSNOI  阅读(1315)  评论(0编辑  收藏  举报