Форум программистов, компьютерный форум CyberForum.ru

Найти все пары дружественных чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка массива http://www.cyberforum.ru/cpp-beginners/thread708276.html
Оценки студентов. Записать из файла в двумерный массив информацию об оценках каждого из N студентов группы по тому или иному предмету (в первой строке – информация об оценках первого студента, во второй – второго и т. д.). Общее число предметов равно K. Сформировать список оценок студентов, которые по всем K предметам учатся на 4 и 5. Упорядочить этот список по убыванию среднего балла. Не...
C++ Определить номер пары цифр, в которую входит k-я цифра даны целое число k (1<=k<=180) и последователност цифр 101112...9899, в которой выписаны подряд все двузначные числа. Определить: - номер пары цифр, в которую входит k-я цифра http://www.cyberforum.ru/cpp-beginners/thread708272.html
сделать через указатели C++
подскажите как переделать код #include<math.h> #include<stdio.h> #include <conio.h> void main () {int x,a; float y; FILE*vivod;vivod=fopen("C:\Documents and Settings\Лена\Рабочий стол\Учёба\2 курс\Лаботаторные с++\мои работы\1.txt","w");
C++ Вычислить сумму. Проверить по контрольному значению
Вычислить сумму. Значение проверить по контрольному. \sum_{m=1}^{n}\frac{{(m-1)!}^{2}}{(2m)!} Контрольное значение: \frac{{\pi }^{2}}{18}
C++ Цикл while: Определить, сколько элементов этой последовательности больше предыдущего элемента http://www.cyberforum.ru/cpp-beginners/thread708232.html
1)Последовательность состоит из натуральных чисел и завершается числом 0. Определите, сколько элементов этой последовательности больше предыдущего элемента. Числа, следующие за числом 0, считывать не нужно. Ввод Вывод 1 7 9 0 2
C++ Сортировка двумерного массива по сумме элементов строк Добрый день. Делаю лабораторную, задача: В двумерном массиве хранятся данные об оценках N студентов по М предметам. Номер строки соответствует номеру студента в группе, номер столбца – предмету. Определить K самых успешных студентов. Сделал первую часть задания, но не могу понять, как отсортировать строки массива по найденной сумме, причем чтобы отображалось количество строк равное k. ... подробнее

Показать сообщение отдельно
laborant
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 14

Найти все пары дружественных чисел - C++

25.11.2012, 11:53. Просмотров 375. Ответов 0
Метки (Все метки)

Найти все пары дружественных чисел от n до k. Два числа называются дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа.

не могу понять где я ошибся
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <stdio.h>          //Подключение библиотек и заголовочных файлов
#include <conio.h>
#include <windows.h>
#include <math.h>
char bufRus[256];           //Подключение русского языка
char* Rus(const char*text)
{
    CharToOem(text, bufRus);
    return bufRus;
}
main()
{
    int n,k,x,y,i,a,s_x,s_y;
    puts(Rus("Введите левую границу диапазона n"));
    scanf("%d",&n);
    puts(Rus("Введите правую границу диапазона k"));
    scanf("%d",&k);
    puts(Rus("Дружественные числа из этого диапазона:"));
    for(x=n; x<=k; x++)
      {
            for(i=2,s_x=1; i<=x/2+1; i++)
              {
                    a=x%i;
                    if(a==0)
                      s_x+=i;
                }    
            for(y=x+1; y<=k; y++)
              {     
                            for(i=2,s_y=1; i<=y/2+1; i++)
                              {
                                    a=y%i;
                                    if(a==0)
                                      s_y+=i;
                                }
                            if(s_x==y&&s_y==x)
                              {
                                    printf("%d - %d\n",x,y);
                                    puts(Rus("Делители первого числа:"));
                                    printf("1 ");
                                    for(i=2; i<=x/2+1; i++)
                                      {
                                            a=x%i;
                                            if(a==0)
                                              printf("%d ",i);
                                      }
                                    printf(Rus("\nСумма делителей первого: %d\n"),s_x);
                                    puts(Rus("Делители второго числа:"));
                                    printf("1 ");
                                    for(i=2; i<=y/2+1; i++)
                                      {
                                            a=y%i;
                                            if(a==0)
                                              printf("%d ",i);
                                      }
                                    printf(Rus("\nСумма делителей второго: %d\n\n"),s_y);
                              }      
                                    
              }
      }
    fflush(stdin);   //Очистка буфера
    getchar();
    return(0);
}
помогите
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru