问题标题: 酷町堂:大佬们帮我看看这一题:7451

0
0
已解决
范浩轩
范浩轩
资深守护
资深守护
#include<iostream>
#include<cmath>
using namespace std;
long long s(int a)
{
    int cnt=0;
    int x=0;
    for(int i=1;i<sqrt(a);i++)
    {
        if(a%i==0)
        {
            cnt+=i;
            cnt+=a/i;
        }
        if(a/i==i)
        {
            x=i;
        }
    }
    return abs(cnt-x);
}
int main()
{
    int a,b;
    long long sum=0;
    cin>>a>>b;
    for(int i=a;i<=b;i++)
    {
        sum+=abs(i-s(i));
    }
    cout<<sum;
    return 0;
}

 

范浩轩在2023-04-21 12:34:47追加了内容

没人会吗?????


0
已采纳
张世贤
张世贤
中级守护
中级守护

首先第8行循环条件中<应改为<=,且考虑到sqrt函数的返回值是小数,最好写成i*i<=a

我要回答