Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Задание 3. Число называется совершенным, если сумма
- всех его делителей равна ему самому. Напишите функцию
- поиска таких чисел во введенном интервале.
- #include<iostream>
- bool numIsPerfect(int num)
- {
- int sum{};
- for (int x{1}; x < num; ++x)
- {
- if (num % x == 0)
- {
- sum += x;
- }
- }
- return (num == sum);
- }
- void perfectNumInRange(int x, int y)
- {
- if (x > y)
- {
- int copy{ x };
- x = y;
- y = copy;
- }
- bool ind{ false };
- for (; x <= y; ++x)
- {
- if (numIsPerfect(x))
- {
- std::cout << x <<' ';
- ind = true;
- }
- }
- if (!ind) { std::cout << "There are no ideal numbers in the given range."; }
- }
- int main()
- {
- int x{};
- int y{};
- std::cout << "Enter the first value in the divisor range - ";
- std::cin >> x;
- std::cout << "Enter the and in the divisor range - ";
- std::cin >> y;
- std::cout << "Perfect number(s) : "; perfectNumInRange(x, y);
- std::cout << '\n';
- }
- Задание 5. Написать функцию, которая определяет, является ли «счастливым» шестизначное число
- сумма первых трех цифр равна сумме вторых трех цифр.
- #include <iostream>
- bool luckyNumber(int num)
- {
- const int rubikon{ 1000 };
- int digit{0};
- int sum{0};
- while (num)
- {
- digit = num % 10;
- sum += (num > rubikon ? digit : -digit);
- num /= 10;
- }
- return !sum;
- }
- int main()
- {
- const int minRange{ 99999 };
- const int maxRange{ 1000000 };
- int num{0};
- std::cout << "Enter six digit number\n";
- std::cin >> num;
- if (num > minRange and num < maxRange)
- {
- if (luckyNumber(num))
- {
- std::cout << "Lucky ticket!\n";
- }
- else
- {
- std::cout << "Not a lucky ticket!\n";
- }
- }
- else
- {
- std::cout << "Not a six digit number!\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement