若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

1912: 亲和数

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,257

题目描述

如果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 <math.h>
void main() 
{
    int sum_ys(int a);
    int m,i,a[1000],b[1000],c[1000];
    scanf("%d",&m);
    for (i=0;i<m;i++) 
    {
        scanf("%d%d",&a[i],&b[i]);
    }
    for (i=0;i<m;i++) 
    {
        if ((sum_ys(a[i])==b[i])&&(sum_ys(b[i])==a[i])) c[i]=1; else c[i]=0;
        ;
    }
    for (i=0;i<m;i++) 
    {
        if (c[i]==1) printf("YESn");
        if (c[i]==0) printf("NOn");
    }
}
int sum_ys(int a){
    int i,sum=0;
    for (i=2;i<=sqrt(a);i++)
    {
        if (a%i==0) sum=sum+(a/i)+i;
    }
    return sum+1;
}

解析

暂无

hustoj

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

原站点 Skip Dreams孤独患者
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist