Cоставить программу, которая проверяет, является заданное число совершенным. - Компьютерные вопросы

Вопрос Cоставить программу, которая проверяет, является заданное число совершенным.

Регистрация
27 Ноя 2013
Сообщения
72
Репутация
0
Спасибо
0
Монет
0
Совершенным называется натуральное число, равное сумме всех своих делителей (за исключением самого себя). Например: 28= 1 + 2 + 4 + 7 + 14
Только на С++
 
Регистрация
8 Май 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
63460143_bdacd5e6750e2a57e132f4a381763bed_800.png
 
Регистрация
12 Дек 2013
Сообщения
68
Репутация
0
Спасибо
1
Монет
0
Самый тупой, но работающий алгоритм: #include "iostream" int main() {long int k,n,s; ffm:s=0; cout<<"
Натуральное число n>=2 ?"; cin>>n; for(k=1;k<=n/2;k++) if(n%k==0)s+=k; if(s==n)cout<<n<<" простое число !"; else cout<<n<<" простым числом не является !";goto ffm;}
 
Регистрация
21 Ноя 2013
Сообщения
92
Репутация
-3
Спасибо
0
Монет
0
а на сколько оптимизированную надо? я могу перебором вариантов сделать, как простой вариант, но это плохо оптимизированный вариант, хоть и незаметный в работе с маленькими числами до тысячь 10-ти
 

das

Capitan

das

Capitan
Регистрация
14 Июн 2013
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
ух ты! над этой задачей целый институт работает (для криптографии надо знать совершенные числа огромные)
 
Сверху Снизу