avr39ripe

cppPerfectNumberLuckyNumberBogdanStanislavVer

Aug 9th, 2021
69
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data