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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
maslovartem
0 / 0 / 0
Регистрация: 18.06.2010
Сообщений: 30
#1

совершенные числа - C++

28.06.2010, 08:21. Просмотров 1615. Ответов 6
Метки нет (Все метки)

Здрасте,помогите организовать программу на Си,которая определяет является ли введённое с клавиатуры число совершенным.
и надо расписать каждую строчку.что она обозначает и зачем она нужна...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2010, 08:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос совершенные числа (C++):

Для заданного натурального числа N вывести в столбик все совершенные числа меньшие N c++ - C++
Для заданного натурального числа N вывести в столбик все совершенные числа меньшие N. Совершенное число – натуральное число, которое равно...

Совершенные числа. - C++
подскажите как переделать под С , а не С++ буду признателен #include <iostream.h> #include<conio.h> #include <vcl.h> ...

Совершенные числа. - C++
По введеному натуральному числу N визначити, чи є воно досконалим. Досконале число дорівнює сумі усіх своїх дільників, включаючи одиницю і...

Совершенные числа - C++
Здравствуйте. Пытаюсь решить следующую задачку: реализовать метод, который получает число n и возвращает все совершенные числа в диапазоне...

Совершенные числа - C++
В интервале от a до b напечатать совершенные числа. Совершенное число, равно сумме всех своих делителей, например 28=1+2+4+7+14

Совершенные числа - C++
Натуральное число называется совершенным, если оно равно сумме всех своих делителей, кроме себя самого. Число 6 является совершенным, так...

6
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
28.06.2010, 08:27 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# include <stdio.h>
int main()
{
    int num,i,ind, z;
    printf("Enter kol-vo chisel\n");scanf("%d",&z);
    for (num= 2; num<=z; num++)
    {
        ind=1;
        for (i=2; i<=num/2;i++)
            if (num%i==0) ind=ind+i;
        if (ind==num)printf("%d\n",num);        
    }
    return 0;
}
Это вывод совершенных чисел в диапозоне до z. Может поможет понять
1
maslovartem
0 / 0 / 0
Регистрация: 18.06.2010
Сообщений: 30
28.06.2010, 08:44  [ТС] #3
напиши мне обычную задачу,которая определяет является ли введённое с клавиатуры число совершенным.Чё за диапазон z?Мне просто задачу надо...
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
29.06.2010, 01:29 #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# include <stdio.h>//Подключение библиотеки
int main()//Функция
{
                int i,ind, z;//Переменные целого типа i, ind, z
        printf("Enter num\n"); //Введите число
        scanf("%d",&z);//Вводим число
                ind=0;//Инд =0
                for (i=1; i<=z/2;i++)//От i=1; i<=число делить на два; при каждом проходе цикла к i прибавляем единицу
                {//Цикл
                        if (z%i==0) ind=ind+i;//Если остаток от деления числа на i есть ноль, то прибавляем значение i к инд.
                }//Закрываем цикл
                if (ind==z)//Если инд=введенному числу
                    printf("Sovershennoe chislo\n",z);//Число совершенное
                else//Если нет
                    printf("Ne soversh chislo\n");//Число несовершенное
        return 0;//Возвращаем ноль
}//Закрываем функцию мейн
Ссор на работе весь день был)

Добавлено через 38 минут
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# include <stdio.h>
int main()
{
        int num=2,i,ind, z;
        printf("Enter num\n"); 
        scanf("%d",&z);
                ind=1;
                for (i=2; i<=z/2;i++)
                {
                        if (z%i==0) ind=ind+i;
                }
                if (ind==z)
                    printf("Sovershennoe chislo\n",z);
                else
                    printf("Ne soversh chislo\n");
        return 0;
}
Так тоже работает. Но не совсем по определению совершенных чисел. Вроде там делитель один тоже учитывается. Комментарии такие же, но это доп. вариант
1
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
29.06.2010, 01:48 #5
а я в виде функции оформил, тоже выложу.

C++
1
2
3
4
5
6
7
8
9
bool perfect(int x){
    int sum=0;
    for (int i=1; i<x; ++i)
        if ( !(x%i) )
        sum+=i;
    if (sum==x)
    return true;
    else return false;
}
0
Хохол
Эксперт С++
475 / 443 / 13
Регистрация: 20.11.2009
Сообщений: 1,292
29.06.2010, 02:15 #6
Ай-ай-ай, PointsEqual, ну кто же так пишет , надо последней строчкой функции
C++
1
return sum == x;
1
Serg112
8 / 8 / 1
Регистрация: 28.06.2010
Сообщений: 24
29.06.2010, 12:49 #7
Можно ещё и так

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
long s[5] = { 6, 28, 496, 8128, 33 550 330 }; /* Первые пять совершенных чисел */
int IsSover( long n )
{
    int i;
    /* Сравнивает n с первыми 5-ю совершенными числами */
    for(i=0; i<5; i++)
        if( n==s[i] )
            return 1;
    return 0;
}
 
int main(void)
{
   printf("-> ");
   scanf("%d", n);
   if( IsSover( n ) )
      printf("Number sovershennoe");
   else
      printf("Number not sovershennoe");
   return 0;
}
0
29.06.2010, 12:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2010, 12:49
Привет! Вот еще темы с ответами:

Совершенные числа - C++
Вводится число n, требуется вывести совершенные числа до n. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; void...

Совершенные числа - C++
Как из этого кода сделать алгоритм, который находит совершенные числа. #include &lt;iostream&gt; using namespace std; int main() { ...

Рекурсия, совершенные числа - C++
Добрый вечер. Столкнулся с проблемой написания рекурсивной функции для определения, совершенное число или нет. Попробовал сделать так,...

Совершенные числа(косяк) - C++
Добрый день! Возникла проблема с вывод совершенных чисел в интервале от m до n. Почему-то вообще не выводит, хотя проверял похожий...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.