5 / 5 / 1
Регистрация: 30.11.2011
Сообщений: 238
Записей в блоге: 1
1

Найти все пары натуральных дружественных чисел, меньших заданного

18.06.2012, 10:48. Показов 2657. Ответов 1
Метки нет (Все метки)

Привет, помогите с задачкой.

Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей другого (Само другое число в качестве делителя не рассматривается). Найти все пары натуральных дружественных чисел, меньших 50,000.

Задачка сложная, но кто умный догадается как делать..
заранее спасибо!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2012, 10:48
Ответы с готовыми решениями:

Найти все пары дружественных чисел из промежутка от M до N
Всем привет, нужна помощь в задаче: Два различных натуральных числа называются дружественными,...

Найти все пары дружественных чисел,лежащих в диапазоне от 200 до 300
два натуральных числа называют дружественными,если каждое из них равно сумме всех делителей...

Найти все пары дружественных чисел, содержащихся в диапазоне от 200 до 300
Два натуральных числа называются дружественными, если каждое из них равно сумме всех делителей...

Найти все пары дружественных чисел которые содержатся в диапазоне от 200 до 300
Помогите пожалуйста решить: Два натуральных числа называются дружественными если каждое с них...

1
1404 / 646 / 135
Регистрация: 11.08.2011
Сообщений: 2,299
Записей в блоге: 2
18.06.2012, 12:11 2
Лучший ответ Сообщение было отмечено Oneill как решение

Решение

Pascal
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
var n,s1,s2,i,j: longint;
 
 
function SumDel (n: longint): longint;
var i,sum,q: longint;
begin
sum:= 1;
q:= trunc(sqrt(n));
if q*q=n then
 begin
  sum:= q+1;
  dec (q);
 end;
 
 for i:= 2 to q do
  if n mod i = 0 then
   inc (sum, i+n div i);
   
SumDel:= sum;
end;
 
 
begin
 
for i:= 2 to 50000 do
 begin
  s1:= SumDel (i); s2:= SumDel (s1);
  if (i=s2) and (i<s1) then
   writeln (i, ' ',s1);
 end;
 
end.
Если нужна скорость для программы, то нужно, чтобы программа одна вычислила все числа, а потом забить их в константу.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2012, 12:11
Помогаю со студенческими работами здесь

Найти все пары натуральных чисел, частное которых = X
Найти все пары натуральных чисел, частное которых = X.

Из заданного интервала натуральных чисел выбрать и напечатать все пары дружественных чисел
Из заданного интервала натуральных чисел выбрать и напечатать все пары дружественных чисел. (Два...

В массиве найти все пары "дружественных" чисел, которые не больше заданного числа N
Помогите решить пожалуйста задачи на массивы. 1. 2 натуральных числа называются...

Напечатать все пары дружественных чисел, не превосходящих заданного натурального числа
Помогите пожалуйста решить задачку, сам чета не могу вкурить:( Два натуральных числа называются...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru