Informatică, întrebare adresată de Utilizator anonim, 8 ani în urmă

stie careva?
Clasa a 10 a C++

Anexe:

Răspunsuri la întrebare

Răspuns de marius0913
1

Explicație:

1.

#include <iostream>

using namespace std;

int perfect(int n)

{

int s=0;

for(int i=1;i<=n/2;i++)

{

if(n%i==0)

{s+=i;}

}

if(s==n)

{return s;}

else

{return 0;}

}

int main()

{

int x,s=0;

cin>> x;

for(int i=1:i<=x;i++)

{

if(perfect(i))

{cout<<i<<endl;}

}

return 0;

}

2.

#include <iostream>

using namespace std;

int main()

{

int m,n,s1=0,s2=0,cif1,cif2;

cin>>m>>n;

int cm=m,cn=n;

while(m)

{

cif1=m%10;

s1=s1+cif1;

m=m/10

}

while(n)

{

cif2=n%10;

s2=s2+cif2;

n=n/10

}

if(s1>s2)

cout<<cm;

else

cout<<cn;

return 0;

}


marius0913: nu , ne referim la functia perfect pentru numărul i , eu am descris-o pentru int n
marius0913: adică înlocuiesc i cu n în functia perfect
marius0913: o altă soluție ar fi una mai literară , adică nu avem nicio funcție doar pe main și folosim if pentru a ne da seama : Numerele perfecte până la 10000 sunt 6 28 496 si 8128if(n>=6&&n<27) cout<< 6 , if(n>=28&&n<495) cout 6 28 ș.a.
marius0913: nu poți scrie altceva
marius0913: îți scrie în exercițiu ce înseamnă un număr perfect , nu este o lecție așa-zisă , este un caz particular al determinării divizorilor unui număr
Alte întrebări interesante