【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 }