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

Регистрация
27 Ноя 2013
Сообщения
71
Репутация
0
Спасибо
0
Монет
0
Совершенным называется натуральное число, равное сумме всех своих делителей (за исключением самого себя). Например: 28= 1 + 2 + 4 + 7 + 14
Только на С++
 
63460143_bdacd5e6750e2a57e132f4a381763bed_800.png
 
Самый тупой, но работающий алгоритм: #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;}
 
#include "iostream" using namespace std; int main(){ int i,j,s; cin>>i; s=0; for(j=1;j<i;j++)if(i%j==0)s+=j; cout<<boolalpha<<(i==s)<<endl; cin.get(); cin.get();}
 
а на сколько оптимизированную надо? я могу перебором вариантов сделать, как простой вариант, но это плохо оптимизированный вариант, хоть и незаметный в работе с маленькими числами до тысячь 10-ти
 
ух ты! над этой задачей целый институт работает (для криптографии надо знать совершенные числа огромные)
 

Похожие темы

Назад
Сверху