求 n的所有素因子 贴个高效的代码

 

void solve(int n)
{
    int k=2;
      while(n)
      {
          if(n%k==0)
              printf("%d \n",k);
          else { n=n/k; k++;}
      }
}
//像 120   会输出 2 2  2 3 5 // 当k=2时 n一直自除2 除到不能被2整除了 当然就 不能被 4 6 8 10 。。。整除了  所以 就不用判断下一个能被n整除的
//数是不是素数了 这有点像 素数筛选法的感觉 .
// 如果不要重复的  再进行处理 就好了

 

posted @ 2013-06-01 15:13  galaxy77  阅读(143)  评论(0编辑  收藏  举报