注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我心飞翔

我有一个梦想,……

 
 
 

日志

 
 
 
 

中国余数定理  

2009-06-29 17:23:17|  分类: 软件编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Chinese remainder theorem

 

    (中国余数定理):有一数n,被2除余1,被3除余2,被5除余4,被6除余5,正好被7整除,求该数n.

    分析:由于n被2除余1,可设初值为3;再将n除3,若不余2,则将n加2,再反复用3除,若不余2,总是加2,直到余2为止(此时的n已是被2除余1,被3除余2,往下如需增加n,则必须增加2与3的最小公倍数6,才能保证前两步的结果被2除余1,被3除余2不变).

    接着用5去除n,若不余4,则将n加6,反复增6直到n被5除余4为止;再将此时的n用6去除,若不余5,则将n加30(30是2,3,5的最小公倍数).

    反复进行直到余5为止;最后将n用7去除,若除不尽,则将n加30,反复进行直到n被7整除为止,此时的n即为所求.

程序如下:

main()

{

 int n=3;

 while(n%3!=2) n+=2;

 while(n%5!=4) n+=6;

 while(n%6!=5) n+=30;

 while(n%7!=0) n+=30;

 printf("The number is %d\n”,n);

}

  评论这张
 
阅读(178)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017