C语言实例 亲密数_C/C++语言_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

C语言实例 亲密数

作者:黑客防线网安C/C++教程基地 来源:黑客防线网安C/C++教程基地 浏览次数:0

本篇关键词:亲密实例语言因子
黑客防线网安网讯:  如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。  *问题分析与算法设计  ...
  如果整数A的全部因子(包括1不包括A本身)之和等于B;且整数B的全部因子(包括1不包括B本身)之和等于A,则将整数A和B称为亲密数求3000以内的全部亲密数
  *问题分析与算法设计
  按照亲密数定义,要判断数a是否有亲密数,只要计算出a的全部因子的累加和为b,再计算b的全部因子的累加和为n,若n等于a则可判定a和b是亲密数。计算数a的各因子的算法:
  用a依次对i(i=1~a/2)进行模运算,若模运算结果等于0,则i为a的一个因子;否则i就不是a的因子。
  *程序说明与注释
  #include<stdio.h>
  int main()
  {
  int a,i,b,n;
  printf("There are following friendly--numbers pair smaller than 3000: ");
  for(a=1;a<3000;a++) /*穷举1000以内的全部整数*/
  {
  for(b=0,i=1;i<=a/2;i++) /*计算数a的各因子,各因子之和存放于b*/
  if(!(a%i))b+=i; /*计算b的各因子,各因子之和存于n*/
  for(n=0,i=1;i<=b/2;i++)
  if(!(b%i))n+=i;
  if(n==a&&a<b)
  printf("%4d..%4d ",a,b); /*若n=a,则a和b是一对亲密数,输出*/
  }
  }
  *运行结果
  There are following friendly--numbers pair smaller than 3000:
  220.. 284 1184.. 1210 2620.. 2924
    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-15465-1.html
网站维护教程更新时间:2012-04-04 22:55:16  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer