2012

素数判定

 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int isprimer(int m);
 5 int main()
 6 {
 7     int n, x, y, k, sum;
 8     while (scanf_s("%d %d", &x, &y))
 9     {
10         if (x == 0 && y == 0)
11             break;
12         for (int n = x; n <= y; n++)
13         {
14             sum = n * n + n + 41;
15             if (!isprimer(sum))
16             {
17                 printf("Sorry
");
18                 break;
19             }
20         }
21         printf("OK
");
22     }
23     return 0;
24 }
25 
26 int isprimer(int m)
27 {
28     int i = 2;
29     int j = 1;
30     for (;i < sqrt(m);i++)
31     {    
32         if (m / i == 0)
33         {
34             j = 0;
35             return j;
36         }
37         else
38             j = 1;
39     }
40     return j;
41 }

参考答案

 1 int main(void)
 2 {
 3     int m, n;
 4     int x[] = 
 5     {
 6         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 7         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 8         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
 9         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
10         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11         1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
12         1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1
13     };
14 
15     while (scanf("%d%d", &m, &n), m || n)
16     {
17         for (m += 39, n += 39; x[m] && m <= n ; m++);
18             puts(m > n ? "OK" : "Sorry");
19     }
20     
21     return 0;
22 }
========================if i have some wrong, please give me a message, thx.========================
原文地址:https://www.cnblogs.com/ailx10/p/5327933.html