Advertisement
Guest User

Untitled

a guest
May 24th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. #include <cmath>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <iostream>
  5. #include <algorithm>
  6. using namespace std;
  7.  
  8.  
  9. int calcSumOfProperDivisors(int num)
  10. {
  11. int sum = 1;
  12. for (int i = 2; i * i <= num; ++i)
  13. {
  14. if (num % i == 0)
  15. {
  16. sum += i;
  17. sum += (num / i != i) ? num / i : 0;
  18. }
  19. }
  20. return sum;
  21. }
  22.  
  23. bool isAbundantNumber(int num)
  24. {
  25. return (num < calcSumOfProperDivisors(num));
  26. }
  27.  
  28. bool isSumOfAbundantNumbers(int num)
  29. {
  30. if (num < 24)
  31. return false;
  32. if (num > 28123)
  33. return true;
  34.  
  35. for (int i = 12, size = (num / 2) + 1; i < size; ++i)
  36. {
  37. if (!isAbundantNumber(i))
  38. continue;
  39.  
  40. if (isAbundantNumber(num - i))
  41. return true;
  42. }
  43.  
  44. return false;
  45. }
  46.  
  47. int main()
  48. {
  49. int t, n;
  50. cin >> t;
  51. while (t--)
  52. {
  53. cin >> n;
  54. if (isSumOfAbundantNumbers(n))
  55. cout << "YES" << endl;
  56. else
  57. cout << "NO" << endl;
  58. }
  59. return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement