Kezdőoldal » Számítástechnika » Programozás » Ebben a c++ programnak mi a...

Ebben a c++ programnak mi a hibája?

Figyelt kérdés

Feladat szövege:

A matematikusok barátságos számoknak nevezik azokat a számpárokat, ahol az egyik szám nála kisebb osztóinak összege egyenlő a másik számmal és viszont. Ilyen számpár például a 220 és a 284, hiszen: a 220 nála kisebb osztói: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110, s ezek összege 284; a 284 nála kisebb osztói: 1, 2, 4, 71, 142, s ezek összege 220. A feladat egy olyan program írása, mely a barátságos számpárokat állítja elõ megadott határig.


Nem tudom mi a hibája ... Tökéletesen működik, de mégis valamiért kiírja a 408 - 672 számpárt ... De miért ?! Később se csinál semmi hibát ( megnéztem 100.000- ig a barátságos számokat ) ettől egyig mindet kiírta, de mégis a 408-672 párt is kiírta, pedig azok nem is barátságos számok ... Vajon miért ?


#include <iostream>


using namespace std;


int main()

{

int osztok=0;

int osztokN=0;

for(int i=2; i<1000; i++)

{

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

{

if( i % j ==0)

{

osztok+=j;

}

}

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

{

if( osztok % n == 0)

{

osztokN+=n;

}

if(osztokN==i && i!=osztok)

{

cout << "A par ket szama: " << i << " es " << osztok <<endl;

osztokN=0;

}

}

osztokN=0;

osztok=0;

}

std::cin.ignore();

std::cin.get();

return 0;

}



2014. ápr. 1. 18:14
 1/2 anonim ***** válasza:
a kiíratást és az azt körülfogó feltételt egy szinttel kijjebb tedd, mert így a második for ciklus minden iterációjában lefut, ami nem jó
2014. ápr. 1. 19:50
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:
Köszönöm, sikerült! De hogy most miért változott meg az egész, nem igazán értem ...
2014. ápr. 1. 20:11

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!