Форум программистов, компьютерный форум, киберфорум
Наши страницы

Из заданного интервала натуральных чисел выбрать все совершенные числа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Мат. вычисления http://www.cyberforum.ru/cpp-beginners/thread247836.html
подскажите что не так,да и так ли я вообще делал (мой код работает не правиль) #include "stdafx.h" #include <stdio.h> #include <conio.h> void main() {
C++ За допомогою циклу while!! Допоможіть розвязати таку задачу!! Нехай дано число н. Необхідно вивести на екран всі точні (цілі квадрати) натуральних чисел, які не перебільшують задане число. наприклад, якщо н=50, то вивести... http://www.cyberforum.ru/cpp-beginners/thread247832.html
C++ Как вставить индекс после максимального элемента массива со смещением остальных элементов?
После первого максимального (минимального) элемента массива вставьте его номер, передвинув все элементы массива, сле¬дующие за ним, вправо на одну позицию. При этом значение последнего элемента...
C++ Строка,подщёт вхождения каждого слова
Строки,подщёт вхождения каждого слова и вывод слова и сколько рас оно там встречялось, помогите пожалуста с этим заданием,ато понятия не имею что и как тут делать.
C++ списки http://www.cyberforum.ru/cpp-beginners/thread247783.html
Привет!Помогите...у меня такое задание по спискам "11. Написать программу, содержащую подпрограмму, которая проверяет на равенство списки М1 и М2."....как я понимаю нужно создать два списка и...
C++ Определить сколько раз массив меняет знак на противоположный Решите пожалуйста 2 задачки =) 1)Дан одномерный массив А, состоящий из целых чисел. Определить сколько раз массив меняет знак на противоположный. 2)Даны два целочисленных массива, состоящие из... подробнее

Показать сообщение отдельно
Neys
-1 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 14
10.04.2012, 13:45
Добрый день. Не могу сообразить, как лучше организовать проверку на "совершенство" с помощью рекурсии. Попробовал сделать так, как ниже, но этот вариант с "костылями" и много лишних вычислений выходит.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
 
using namespace std;
 
bool is_perfect(int num, int lim)
{
    int sum = 0;
    for (int i = lim; i >= 1; i--)
        if (num % i == 0)
        {
            sum += i; 
            cout << sum << ' ';
            is_perfect(num, lim / 2);
        }
    return sum == num;   
}
 
void main()
{
    setlocale(0, "");
    int number;
    cout << "Введите число: ";
    cin >> number;
    if(is_perfect(number, number/2))
        cout << "Число совершенное." << endl;
    else
        cout << "Число совершенным не является." << endl;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru