Advertisement
avr39ripe

cppPerfectNumberLuckyNumberBogdanStanislavVer

Aug 9th, 2021
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. Задание 3. Число называется совершенным, если сумма
  2. всех его делителей равна ему самому. Напишите функцию
  3. поиска таких чисел во введенном интервале.
  4.  
  5.  
  6. #include<iostream>
  7. bool numIsPerfect(int num)
  8. {
  9. int sum{};
  10.  
  11. for (int x{1}; x < num; ++x)
  12. {
  13. if (num % x == 0)
  14. {
  15. sum += x;
  16. }
  17. }
  18.  
  19. return (num == sum);
  20. }
  21.  
  22. void perfectNumInRange(int x, int y)
  23. {
  24. if (x > y)
  25. {
  26. int copy{ x };
  27. x = y;
  28. y = copy;
  29. }
  30.  
  31. bool ind{ false };
  32.  
  33. for (; x <= y; ++x)
  34. {
  35. if (numIsPerfect(x))
  36. {
  37. std::cout << x <<' ';
  38. ind = true;
  39. }
  40. }
  41. if (!ind) { std::cout << "There are no ideal numbers in the given range."; }
  42. }
  43.  
  44. int main()
  45. {
  46. int x{};
  47. int y{};
  48.  
  49. std::cout << "Enter the first value in the divisor range - ";
  50. std::cin >> x;
  51. std::cout << "Enter the and in the divisor range - ";
  52. std::cin >> y;
  53.  
  54. std::cout << "Perfect number(s) : "; perfectNumInRange(x, y);
  55. std::cout << '\n';
  56. }
  57.  
  58.  
  59.  
  60. Задание 5. Написать функцию, которая определяет, является ли «счастливым» шестизначное число
  61. сумма первых трех цифр равна сумме вторых трех цифр.
  62.  
  63.  
  64.  
  65. #include <iostream>
  66.  
  67. bool luckyNumber(int num)
  68. {
  69. const int rubikon{ 1000 };
  70.  
  71. int digit{0};
  72. int sum{0};
  73.  
  74. while (num)
  75. {
  76. digit = num % 10;
  77. sum += (num > rubikon ? digit : -digit);
  78. num /= 10;
  79. }
  80.  
  81. return !sum;
  82. }
  83.  
  84. int main()
  85. {
  86.  
  87. const int minRange{ 99999 };
  88. const int maxRange{ 1000000 };
  89.  
  90. int num{0};
  91.  
  92.  
  93. std::cout << "Enter six digit number\n";
  94. std::cin >> num;
  95.  
  96. if (num > minRange and num < maxRange)
  97. {
  98. if (luckyNumber(num))
  99. {
  100. std::cout << "Lucky ticket!\n";
  101. }
  102. else
  103. {
  104. std::cout << "Not a lucky ticket!\n";
  105. }
  106. }
  107. else
  108. {
  109. std::cout << "Not a six digit number!\n";
  110. }
  111.  
  112. return 0;
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement