fork download
  1. #include <iostream>
  2. #include<set>
  3. #include<iterator>
  4. #include<cmath>
  5. using namespace std;
  6. int count=0,num=0;
  7. set<int>myset;
  8. int hpy(long long int t){
  9. //set<int>myset;
  10. int ans=0;
  11. while(t)
  12. {
  13. num=t%10;
  14. t/=10;
  15. num*=num;
  16. ans+=num;
  17. }count++;
  18. if(ans==1)
  19. return count;
  20. else if(myset.end()==myset.find(ans))
  21. {
  22. myset.insert(ans);
  23. hpy(ans);
  24. }
  25. else if(myset.end()!=myset.find(ans))
  26. {
  27. return (-1);
  28. }
  29. }
  30. int main(){
  31. long long int t;
  32. cin>>t;
  33. //set<int>myset;
  34. int y=hpy(t);
  35. //for(set<int>::iterator it=myset.begin();it!=myset.end();it++)
  36. //cout<<*it<<" ";
  37. cout<<y<<endl;
  38. return 0;
  39. }
Success #stdin #stdout 0s 16064KB
stdin
68


stdout
2