С++.Даю 20 баллов. Есть код на нахождение количества и суммы делитель числа. Нужно его оптимизировать. Выполняется очень долго
сам код:
#include < >
int main()
{
int n, s = 0, ans = 0;
std::cin >> n;
for(int i = 1; i <= n; i++)
{
if(n % i == 0)
{
ans = ans + i;
s++;
}
}
std::cout << s << " " << ans;
}
Answers & Comments
pair<int,int> dels(int k){
int sm = 0;
set<int> s;
for(int i = 1; i * i <= k; i++){
if(k % i == 0){
s.insert(i);
s.insert(k/i);
sm += i + k/i * (i != k/i);
}
}
return {s.size(), sm};
}
signed main(){
int n;
cin >> n;
pair<int, int> ans = dels(n);
cout << ans.first << " " << ans.second;
}