码迷,mamicode.com
首页 > 编程语言 > 详细

算法之我见 [数论之旅] Pollard Rho因数分解

时间:2017-08-29 20:42:30      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:for   pre   数论   please   scan   循环   printf   ++   分解   

算法代码:

#include "stdio.h"
#include "conio.h"
main()
{
  int n,i;
  printf("\nplease input a number:\n");
  scanf("%d",&n);
  printf("%d=",n);
  for(i=2;i<=n;i++)
    while(n!=i)
    {
      if(n%i==0)
      {
        printf("%d*",i);
        n=n/i;
      }
      else
        break;
    }
  printf("%d",n);
}

算法的正确性:

尽管我们测试的i没有保证是质数,但输出的i一定是质数。这是因为任何一个数的质因数比它本身小,测试完较小的数之后,比如假设n%i(i==4)==0进入了输出环节,但实际上i=2的循环已经做完了,此时n%4不可能等于0.多试几次你就理解了。

 

算法之我见 [数论之旅] Pollard Rho因数分解

标签:for   pre   数论   please   scan   循环   printf   ++   分解   

原文地址:http://www.cnblogs.com/G-M-WuJieMatrix/p/7449974.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!