Prímszámos programot írok pascalba, és nagyon elakadtam,
segítség?
Figyelt kérdés
A múltkor már kiírtam egy kérdést, hogy hogyan tudom megcsinálni a prímszámmegmondó :P programot, az sikerült is, de csak a prímosztóit írta ki, és azt nem, hogy hányszor van meg a számban.
Rengeteget gondolkodtam, és sikerült is valamit összehozni, csak az ismétlésbe nem fogadja valamiért el azt, hogy y:=x/a; és az osztásjellel (/) van a hiba.
Nem teljesen értem mit szeretnél elérni, de ha azt szeretnéd elérni, hogy a program megmondja egy számról, hogy prím-e, akkor egy ciklust végigfuttatsz 2-től a szám négyzetgyökéig, ill addig amíg nem találsz osztót, és megvizsgálod, hogy az osztási maradék 0-e, ha nem találtál osztót akkor nyilván primszám.
2011. okt. 23. 11:36
Hasznos számodra ez a válasz?
4/7 A kérdező kommentje:
igen, azt sikerült, hogy prímszáme, most azt akarom, hogy megvizsgálja, hogy pl a 8 ban a 2 a harmadikonszor van meg, tehát, hogy prímtényezőre bontsa...
2011. okt. 23. 11:39
5/7 ejbenjaro válasza:
Azért kapsz hibaüzenetet, mert az osztás sosem egész típusú eredményt ad. Tehát az y változód nem lehet word típusú ha osztás eredményét akarod benne tárolni, vagy az alábbi módon kell használd: y:=round(x/2);
2011. okt. 23. 13:28
Hasznos számodra ez a válasz?
6/7 anonim válasza:
Szia. Látom a modulót (maradék) már használod, akkor ideje a / -t is a DIV-re cserélni. :) Az osztás egész részét adja vissza.
Továbbá, érdekesen oldottad meg a problémát. Persze ettől még lehet jó, de van sokkal optimálisabb megoldás.
Bekérsz egy számot. 1..SQRT(szám)-ig loop-olsz, és ha, ekkor van olyan, hogy egy mod nem 0, akkor break ( asszem ez jelentette Pascalban is, a következő utasításra ugrást.)
2011. okt. 27. 22:07
Hasznos számodra ez a válasz?
7/7 anonim válasza:
Vagy pl.:Real-nek deklarálod a változókat word helyett.Így kiírja a tizedeseket is.
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!