C++
Phước Thành Nguyễn
Đã trả lời thg 4 5, 2023 4:05 SA
Your algorithm complexity is O(n^4), so the program runs very slow. Here is my solution in O(nlogn):
#include<bits/stdc++.h>
using namespace std;
int main(){
vector<int> sumDivisors(100001,0);
for(int i=1;i<=50000;i++)
for(int j=i*2;j<=100000;j+=i) sumDivisors[j]+=i;
for(int A=1;A<=100000;A++)
{
int sumDivisorsOfA = sumDivisors[A];
int B = sumDivisorsOfA-1;
if(B<A || B>100000) continue;
int sumDivisorsOfB = sumDivisors[B];
if (sumDivisorsOfB == A+1) {
cout << A << " - " << B << endl;
}
}
return 0;
}
0
Tổ chức
Chưa có tổ chức nào.