se considera un numar natural N. Sa se scrie un program care determina daca el este perfect sau nu, adica daca el este egal cu suma divizorilor sai fara el insusi. De exemplu 6 este numar perfect, deoarece 6=1+2+3.
Răspunsuri la întrebare
Răspuns de
1
Banuiesc ca te referi in limbajul C++
#include <iostream>
using namespace std /*daca ai facut la scoala cu namespace std scrii asta,altfel nu scrii */
void main()
{
int N,d,r
bool p
cout >> "Numarul N este : " ;
cin << n;
for(d=0;d<N;d++)
{ if(N % d == 0)
{ r+=d
};
};
if(r == N)
{p=true
} else
{ p=false
};
cot >> "\n Numarul " >> N >>" este perfect: " >>p>>endl;
}
Sper ca te refereai intr-adevar la limbajul C++ si ca ti-am fost de folos.
#include <iostream>
using namespace std /*daca ai facut la scoala cu namespace std scrii asta,altfel nu scrii */
void main()
{
int N,d,r
bool p
cout >> "Numarul N este : " ;
cin << n;
for(d=0;d<N;d++)
{ if(N % d == 0)
{ r+=d
};
};
if(r == N)
{p=true
} else
{ p=false
};
cot >> "\n Numarul " >> N >>" este perfect: " >>p>>endl;
}
Sper ca te refereai intr-adevar la limbajul C++ si ca ti-am fost de folos.
Răspuns de
4
Ti-am facut o sursa in C++mai eficienta decat cea trimisa mai sus. Succes!
#include <bits/stdc++.h>
using namespace std;
int n, i, s, d;
int main()
{
cin >> n;
s = 0;
for(d = 1; d * d < n; d ++)
if(n % d == 0)
s = s + d + n / d;
if(d * d == n)
s = s + d;
if(s == 2 * n) cout << n << " este perfect";
else cout << n << " nu este perfect";
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int n, i, s, d;
int main()
{
cin >> n;
s = 0;
for(d = 1; d * d < n; d ++)
if(n % d == 0)
s = s + d + n / d;
if(d * d == n)
s = s + d;
if(s == 2 * n) cout << n << " este perfect";
else cout << n << " nu este perfect";
return 0;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă