• 【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);
    	}
    
    }
  • 相关阅读:
    【leetcode】1324. Print Words Vertically
    【leetcode】1323. Maximum 69 Number
    【leetcode】1320. Minimum Distance to Type a Word Using Two Fingers
    【leetcode】1319. Number of Operations to Make Network Connected
    7系列GTX中的疑惑
    8b10b
    hB
    MATLAB实现最优低通滤波器的函数
    modelsim读写TXT文件
    ILA用法
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860845.html
Copyright © 2020-2023  润新知