Pascal gondok, egy kis segitseg?
Lenne ket feladat, ami gondokat okozott. -Adott egy termeszetes szam. Toroljuk belole az osszes k-val egyenlo szamjegyet.
-Adott egy szam. Hatarozzuk meg, hogy primszam-e?
Adott egy termeszetes szam. Toroljuk belole az osszes k-val egyenlo szamjegyet.
Gondold végig hogy épül fel egy szám a 10-es számrendszerbe!
pl.: 123 = 3*1+2*10+3*100
Direkt fordítva írtam fel a legkisebb helyiértéktől kezdve, mert a megoldáshoz is ezt célszerű használni.
legyen a és b változó ami integer típusú és nemnegatív értékeket tárolunk bennük.
b-be hogy rakod bele a értékét? Ugye b:=a, de ne így rakd bele hanem helyiértékenként és úgy hogy nem baj ha a változó értékét közben "elrontod".
Egyáltalán hogy rakod bele b-be a-nak egyes helyiértékén lévő számjegyet? Úgy hogy veszed a-nak 10-el való osztási maradékát, vagyis modulo 10-et.
b:=a mod 10
Hogy rakod bele a-nak a második számjegyét?
b-t elosztod 10-el ezzel levágtad az utolsó számjegyet, malyd ennek a számnak veszed az utolsó számjegyét, azt már leírtam hogy kell.
Ezt kell ismételgetni addig amíg b>0 és a mod 10-nek 1x-esetét 10x-esét 100x-osát stb kell hozzáadni b-hez ciklusba, természetesen ciklus előtt b értékét 0-ra állítottuk. Ciklus végén igaz hogy a=b.
Ez szép és jó de az volt a feladat hogy k-val egyenlő számjegyet töröljük, akkor annyi ha a mod 10 = k akkor nem csináljuk akkor csak a-t osztjuk 10-el vagyis levágjuk az utolsó számjegyét.
A ciklus végén b tartalmazza a kívánt számot.
---------------------------
Másik feladat még egyszerűbb: legegyszerűbben 1-től a számig végigmész egy for ciklussal és egy számlálót növelsz ha osztható vele (modulo 0), ha a számláló értéke 2 a ciklus lefutása után akkor prím.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!