Un număr perfect este un număr natural egal cu dublul sumei divizorilor săi.
Exemplu: 6 este număr perfect pentru că 2∙6=1+2+3+6.
Fișierul perfect.in conține pe primul rând un șir de numere naturale din intervalul
[1,10 6 ], separate prin câte un spațiu. Se cere scrierea și executarea la calculator a unui
program care citește șirul de numere din fișier, apoi afișează pe ecran cel mai mare număr
perfect din șirul citit și prima poziție a acestuia în șir, pe același rând, separate prin câte un
spațiu.
Programul va folosi apeluri utile ale subprogramului perfect. Dacă în fișier nu există
niciun număr perfect, atunci pe ecran se afișează mesajul imposibil.
Exemplu: dacă fișierul perfect.in conține numerele 2048 6 79 496 1379
28 se va afișa 496 4
Răspunsuri la întrebare
Răspuns de
2
Salut!
Ai mai jos rezolvarea in limbajul C++
#include <fstream>
using namespace std;
ifstream cin("perfect.in");
ofstream cout("perfect.out");
int sumDiv(int n)
{
int s = 0;
for (int i = 1; i <= n; i++)
{
if (n % i == 0)
{
s += i;
}
}
return s;
}
int main()
{
int n, max = -1, poz;
cin >> n;
for (int i = 1; i <= n; i++)
{
int x;
cin >> x;
if (sumDiv(x) == x * 2)
{
if (x > max)
{
max = x;
poz = i;
}
}
}
cin.close();
if (max == -1)
{
cout << "imposibil";
}
else
{
cout << max << " " << poz;
}
cout.close();
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Chimie,
8 ani în urmă
Matematică,
8 ani în urmă
Istorie,
8 ani în urmă
Matematică,
9 ani în urmă