Hello guys! Would you, please, help me with this simple program. I got a WA after 31 tests to have been done…Here is my code:
#include <bits/stdc++.h>
using namespace std;
int f(int n) {
int sum = 0;
while (n) {
sum += (n % 10) * (n % 10);
n /= 10;
}
return sum;
}
int main() {
int n, k;
multiset<int> set;
bool flag;
for (int i = 0; i < 32; i++) {
cin >> n;
flag = true;
k = 0;
while (true) {
k++;
set.insert(n);
n = f(n);
if (set.find(n) != set.end()) {
flag = false;
break;
}
if (n == 1) break;
}
if (flag) cout << k << "\n";
else cout << -1 << "\n";
set.clear();
}
system("pause");
return 0;
}