【HDOJ】1164 Eddy's research I

做了很多素数相关的题目,感觉容易多了。简单题。

 1 #include <stdio.h>
 2 
 3 #define MAXNUM 65536
 4 #define PRIMEN 6600
 5 char isPrime[MAXNUM];
 6 int  Primes[PRIMEN];
 7 
 8 int main() {
 9     int i, j;
10     int n=0, num;
11 
12     memset(isPrime, 1, sizeof(isPrime));
13 
14     isPrime[0] = isPrime[1] = 0;
15     for (i=2; i<MAXNUM; ++i) {
16         if (isPrime[i]) {
17             for (j=i+i; j<MAXNUM; j+=i)
18                 isPrime[j] = 0;
19             Primes[n++] = i;
20         }
21     }
22     // printf("%d\n", n);
23     while (scanf("%d", &num) != EOF) {
24         i = 0;
25         while (i<n) {
26             if (isPrime[num]) {
27                 printf("%d\n", num);
28                 break;
29             } else {
30                 if (num%Primes[i] == 0) {
31                     printf("%d*", Primes[i]);
32                     num /= Primes[i];
33                 } else
34                     ++i;
35             }
36         }
37     }
38 
39     return 0;
40 }

 

posted on 2014-04-01 17:06  Bombe  阅读(90)  评论(0编辑  收藏  举报

导航