Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Informatika házifeladat, 9.osztály, megmondani egy számpárról, hogy barátságos-e? A feladatot c++ban kell megoldanom. A segíséget nagyon szépen köszönöm!

282
döntsük el egy számpárról, hogy barátságos-e, vagy sem, egy szám akkor barátságos, ha az egyik szám nála kisebb osztóinak összege megegyezik a másik számmal és ez fordítva. Mindkét feltételnek teljesülnie kell.


itt az én megoldásom.
Jelenleg 1 felhasználó nézi ezt a kérdést.
#C++, #informatika, baratsagos_szamok, 9.osztály
0
Középiskola / Informatika

Válaszok

2
#include <iostream>

using namespace std;

int main()
{
int n1;
cout<<"n1=";
cin>>n1;
int n2;
cout<<"n2=";
cin>>n2;
int ossz1=0;
int ossz2=0;
for (int i=1; i<(n1/2); i++)
{
if(n1%i==0)
{
ossz1=ossz1+i;
}

}


for(int k=1; k<(n2/2); k++)
{
if (n2%k==0)
{
ossz2=ossz2+k;
}

}
if((ossz1==n2)&&(ossz2==n1))
{
cout<<n1<<" "<<n2<<" "<<"Ezek a szamok baratsagosak"<<endl;
}

return 0;
}
0

Annyi a gond, hogy a for-jaid nem mennek végig. Például 220 és 284 barátságosak. Ebből a 220-nak az osztói: 2, 4, 5, 10, 11, 20, 22, 44, 55 és 110. Viszont a for `n1 "/" 2 = 220 "/" 2 = 110` előtt már megáll. Csak annyi kell, hogy az összehasonlításnál engedd az egyenlőséget is: for (int i=1; i<`color(red)"="`(n1/2); i++).
Módosítva: 2 éve
0