제출 #75034

#제출 시각아이디문제언어결과실행 시간메모리
75034charlies_mooSavrsen (COCI17_savrsen)C++14
0 / 120
3040 ms3224 KiB
#include <cstdio>
#include <cmath>
#include <iostream>

using namespace std;

long long is_perfect(long long n)
{
    long long sum=0;
    for(long long i=1;i<=sqrt(n);i++)
    {
        if(n%i==0)
        {
            sum+=i;
			sum+=n/i;
			if(i==1)
				sum-=(n/i);
			if(i<n)
				sum-=i;
        }
    }
    sum-=n;
    long long sqn=sqrt(n);
    if(sqn*sqn==n)
		sum-=sqn;cout<<abs(sum)<<endl;
    return abs(sum);
}

int main()
{
    long long a,b,ans;
    cin>>a>>b;
    for(long long i=a;i<=b;i++)
    	ans+=is_perfect(i);
    cout<<ans;
    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

savrsen.cpp: In function 'long long int is_perfect(long long int)':
savrsen.cpp:24:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
     if(sqn*sqn==n)
     ^~
savrsen.cpp:25:12: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   sum-=sqn;cout<<abs(sum)<<endl;
            ^~~~
savrsen.cpp: In function 'int main()':
savrsen.cpp:34:9: warning: 'ans' may be used uninitialized in this function [-Wmaybe-uninitialized]
      ans+=is_perfect(i);
      ~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...