fork download
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <string>
  4. #include <vector>
  5.  
  6. using namespace std;
  7.  
  8. int waga(int n)
  9. {
  10. n++;
  11. int ln=0,lp=0;
  12.  
  13.  
  14. for(int i=1; i<=n; i++)
  15. {
  16. if(n%i==0)
  17. {
  18. if(i%2==0) lp++;
  19. if(i%2!=0) ln++;
  20. }
  21.  
  22. }
  23. if(lp!=ln) waga(n);
  24. else return n;
  25.  
  26. }
  27.  
  28.  
  29. string w(string a)
  30. {
  31. string b;
  32. if(a.size()==1) b=a.substr(a.size()-1,1);
  33. if(a.size()==2) b=a.substr(a.size()-2,2);
  34. if(a.size()>=3) b=a.substr(a.size()-3,3);
  35.  
  36. int x=stoi(b);
  37. int y=waga(x);
  38.  
  39. return to_string(y);
  40.  
  41. }
  42.  
  43. string math(string a)
  44. {
  45.  
  46. string b=w(a);
  47. string zero1="0";
  48. string zero2="00";
  49. string zero3="000";
  50. if(a.size()==1) a.replace(a.size()-1,1,zero1);
  51. if(a.size()==2) a.replace(a.size()-2,2,zero2);
  52. if(a.size()>=3) a.replace(a.size()-3,3,zero3);
  53.  
  54. int pa=a.size()-1;
  55. int pb=b.size()-1;
  56.  
  57. string wynik;
  58. int p=0;
  59.  
  60. while(pa>=0 || pb>=0)
  61. {
  62. int ca,cb,w;
  63.  
  64. if(pa>=0) ca=a[pa]-48;
  65. else ca=0;
  66. if(pb>=0) cb=b[pb]-48;
  67. else cb=0;
  68.  
  69. w=ca+cb+p;
  70.  
  71. wynik="0"+wynik;
  72. wynik[0]=48+w%10;
  73.  
  74. p=w/10;
  75.  
  76. pa--;
  77. pb--;
  78. }
  79. if(p) wynik="1"+wynik;
  80.  
  81. return wynik;
  82. }
  83.  
  84.  
  85.  
  86. int main()
  87. {
  88. string N;
  89. vector <string> tab;
  90. int C,l=0;
  91. cin>>C;
  92. if(C>=1 && C<=100)
  93. {
  94. while(C--)
  95. {
  96. cin>>N;
  97. if(N.size()<=200)
  98. {
  99. string wynik=math(N);
  100. cout<<wynik<<endl;
  101. }
  102. }
  103.  
  104. }
  105.  
  106.  
  107. }
Success #stdin #stdout 0s 4816KB
stdin
Standard input is empty
stdout
Standard output is empty