红豆泥! 2021-05-14 08:44 采纳率: 94.4%
浏览 51
已结题

请大家帮忙改一下这个代码,为什么oj显示wrong answer,谢谢了

#include<stdio.h> 
#define N 600000
int main()
{
    int k,m,n;
    int s1,s2;
    scanf("%d",&k);
    while(k--)
    {
        scanf("%d%d",&m,&n);
        s1=0;
        s2=0;
        for(int i=1;i<m;i++)
        {
            if(m%i==0)
            s1+=i;
        }
        for(int j=1;j<n;j++)
        {
            if(n%j==0)
            s2+=j;
        }
        if((s1==n)&&(s2==m))
        printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}

题目描述

古希腊数学家毕达哥拉斯在自然数研究中发现,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 <= 600000 ;

输出描述

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

样例输入

<code>2 220 284 100 200 

样例输出

<code>Yes No
  • 写回答

1条回答 默认 最新

  • MagicKingC 2021-05-14 09:26
    关注

    这个算法是没问题的,但是你少了对数值的判断,应该加上if(m>=0&m<=600000)类似这些处理才根据适合题目要求

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日

悬赏问题

  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)