zoukankan      html  css  js  c++  java
  • 【c语言趣味编程100例】亲密数

    亲密数:如果整数A的全部因子(包括1 不包括A本身)之和等于B 
        且整数B的全部因子(包括1 不包括B本身)之和等于A
        则将整数A和B称为亲密数 求3000以内的全部亲密数
    思路:
        亲密数 求3000以内的数,定义一个变量b 保留每次b的因子之和,
        然后在去遍历b的因子之和 存放于n,接着去判断n==b 如果两数相等 说明是亲密数 否则不是亲密数
        程序的关键在于:获取a和b的因子数 在去判断 并且判断的时候 应该注意一点就是a应该小于b 

    #include<stdio.h>
    void main(){
    
    	/*
    	亲密数:如果整数A的全部因子(包括1 不包括A本身)之和等于B 
    	且整数B的全部因子(包括1 不包括B本身)之和等于A
    	则将整数A和B称为亲密数 求3000以内的全部亲密数
    	思路:
    	亲密数 求3000以内的数,定义一个变量b 保留每次b的因子之和,
    	然后在去遍历b的因子之和 存放于n,接着去判断n==b 如果两数相等 说明是亲密数 否则不是亲密数
    	程序的关键在于:获取a和b的因子数 在去判断 并且判断的时候 应该注意一点就是a应该小于b
    	**/
    	int a,i,b,n;
    	printf("There are following friendly-numbers pair smaller than 3000:
    ");
    	for(a=1;a<3000;a++){
    		for(b=0,i=1;i<=a/2;i++)
    			if(!(a%i))
    				b+=i;
    		for(n=0,i=1;i<=b/2;i++)
    			if(!(b%i))
    				n+=i;
    		if(n==a&&a<b)
    			printf("%4d--%4d
    ",a,b);
    	}
    
    }
  • 相关阅读:
    如果你也时常想要上进,我们可以相互鼓励,相互促进
    (转)Math.round(11.5)等于多少?Math.round(-11.5)等于多少?
    乐观锁和悲观锁(Version:0.1)
    redis数据丢失及解决【转】
    Spring的IOC原理[通俗解释一下]
    Java中Error与Exception的区别
    WebService
    JDBC详解
    Cookie与Session
    java的pojo规范
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860845.html
Copyright © 2011-2022 走看看