2009-02-03 17:29:55來源不明

ACM 10699 10699 - Count the factors

與上一篇文章類似

/************************************************************/

  1. #include<stdio.h>   
  2. #include<stdlib.h>   
  3. #include<math.h>   
  4. int math[1000];   
  5. main()   
  6. {   
  7.  int a,b,c,n,m=0;   
  8.  for(a=2;a<1000;a++)   
  9.   {   
  10.    int flag=0;   
  11.    for(b=2;b<=(int)sqrt(a);b++)   
  12.     {   
  13.      if(a%b==0)   
  14.       {   
  15.        flag=1;   
  16.        break;   
  17.       }   
  18.     }   
  19.     if(flag==0)   
  20.      {   
  21.       math[m]=a;   
  22.       m++;   
  23.      }   
  24.   }   
  25.  while(scanf("%d",&n)==1&&n!=0)   
  26.   {   
  27.    int time=0;   
  28.    printf("%d : ",n);   
  29.    for(a=0;a<m;a++)   
  30.     {   
  31.      int flag=0;   
  32.      while(n%math[a]==0)   
  33.       {   
  34.        n=n/math[a];   
  35.        flag=1;   
  36.       }   
  37.       if(flag==1) time++;   
  38.       if(n==1) break;   
  39.     }   
  40.     if(n!=1) time++;   
  41.     printf("%d\n",time);   
  42.   }   
  43.  return 0;   
  44. }