• SDUT OJ 1221 亲和数 (找出某个数n所有的因子数,只需要暴力:2->sqrt(n) 即可 )


    亲和数

     

    Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

    题目描述

    如果a的因子和等于b,b的因子和等于a,且a≠b,则称a,b为亲和数对。 比如220的所有真约数(即不是自身的约数)之和为: 1+2+4+5+10+11+20+22+44+55+110=284。 284的所有真约数和为: 1+2+4+71+142=220。 你的任务就编写一个程序,判断给定的两个数是否是亲和数。

    输入

    输入数据第一行包含一个数M,接下有M行,每行一个实例,包含两个整数A,B; 其中 0≤A,B≤99999。

    输出

    对于每个测试实例,如果A和B是亲和数的话输出YES,否则输出NO。

    示例输入

    2
    220 284
    100 200

    示例输出

    YES
    NO

      代码:

      

    #include <stdio.h>
    #include <string.h>
    #include <math.h>
    
    
    int main()
    {
    	int n, m;
    	int dd, ff;
    
    	int i, j;
    	int t;
    	scanf("%d", &t);
    	while(t--)
    	{
    		scanf("%d %d", &n, &m);
            dd=1;
    		ff=1;
            for(i=2; i<=sqrt(n); i++)
    		{
    			if(n%i==0)
    			{
    				dd=dd+i+(n/i);
    			}
    		}
    		for(j=2; j<=sqrt(m); j++)
    		{
    			if(m%j==0)
    			{
    				ff=ff+j+(m/j);
    			}
    		}
    		if(dd==m && ff==n )
    		{
    			printf("YES
    ");
    		}
    		else
    		{
    			printf("NO
    ");
    		}
    	} 
    	return 0;
    } 
    
    
    
    /**************************************
    	Problem id	: SDUT OJ 1221 
    	Result		: Accepted 
    	Take Memory	: 276K 
    	Take Time	: 0MS 
    	Submit Time	: 2015-01-09 19:49:49  
    **************************************/
    
  • 相关阅读:
    编程之美---求数组中最长递增子序列
    编程之美----子数组的最大乘积
    编程之美----寻找数组中的最大值和最小值
    编程之美---找符合条件的整数
    编程之美----最大公约数问题
    编程之美----1的数目
    编程之美----寻找发帖“水王”
    C语言 |= &= 位运算
    整型数类型定义
    extern使用方法总结!(转)
  • 原文地址:https://www.cnblogs.com/yspworld/p/4231646.html
Copyright © 2020-2023  润新知