24.2.3.24010740. Za neki broj kažemo da je savršen ukoliko je jednak sumi svih svojih djelilaca. Na primjer, 28 je savršen broj: njegovi djelioci su 1, 2, 4, 7 i 14, a 1 + 2 + 4 + 7 + 14 = 28. Napisati program koji traži da se sa tastature unese cijeli brojevi a i b, a koji zatim ispisuje sve savršene brojeve u opsegu od a do b. Kao provjeru ispravnosti programa možete koristiti činjenicu da su jedini savršeni brojevi u opsegu od 1 do 100 brojevi 6 i 28.
Opis rješenja:
Listing programa:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a,b,s(1);
cout<<"Unesi opseg brojeva :\n";
cin>>a>>b;
bool t(true);
a=a+1;
for(a;a<=b-1;a++){
for(int i=2;i<=a-1;i++)
if((a%i)==0)s+=i;
if(s==a){cout<<a<<" ";t=false;}
s=1;
}
if(t)cout<<"\nNema savrsenih brojeva u zadatom opsegu.";
getch();
return 0;
}
Ispis na ekranu:
Riješeni zadaci 2 Index
|
|