Hogyan kell ezt megoldani?
Sziasztok, lenne egy programozás feladat amit nem tudok megoldani. c# program nyelvről lenne szó.
Létre kell hozni egy 100 elemű tömböt amit fel kell tölteni véletlen számokkal 1 és 100 között, ez kész is, ezzel nincs gond.
1. Meg kell állapítani hogy mennyi prímszám van benne (2 órán keresztül próbáltam csinálni és semmi megoldás.)
2. Az 50-nél nagyobb páratlan számokat kell kiíratni (ez kész)
3. Ki kell íratni az első prímszám előtti páros számok átlagát 2 tizedesjegyig (Mivel a maga az 1 feladat sem jó, így ehhez hozzá sem tudok kezdeni.)
4. És végül megkeresni a legnagyobb számot és kiíratni annak az osztóit (Minvalue függvénnyel megkerestem a legnagyobb számot, de az osztói részt nem tudom megcsinálni.)
3 órát öltem bele, és még a feléig sem jutottam el és egyedül képtelenség lenne is szerintem...
Köszi.
1. Mikor prím egy szám? Ha csak önmagával és 1-el osztható. Csinálsz egy prime függvényt, ami ezt vizsgálja egy számra, utána meghívod az összes tömb elemével. (egy for ciklussal például megoldható, hogy egy szám prím-e)
4. ismételten egy for ciklus kell neked és a modulo (%) operátor az osztóinak megkereséséhez - nyilván az osztója, ha 0 a maradék.
Prime függvényt még nem vettünk. elvileg forciklusban kell feltételként megadni.
de sehogy sem áll össze.
if (tomb[i]%1=0&&tomb[i]%tomb[i]==)
Már kezdem feladni.
Mert neked kell megírni :).
Nézzük mondjuk a 13-as számot. Prím-e a 13? Mikor prím? Akkor, ha csak 1-el és 13-al (önmagával) osztható egyedül.
A 13 osztói:
1 - igen, nyilván, még lehet prím - nem is muszáj vizsgálni
2 - nem osztója
3 - nem osztója
4 - nem osztója
5- nem osztója
6 - nem osztója
A 7 nyilván nem lehet már osztója, mivel ha már kettőször vesszük az 14, ami nagyobb, mint a 13, innentől kezdve felesleges is tovább nézni, a 13 prím szám, megáll az algoritmus, igazat ad vissza
Nézzünk egy más számot, mondjuk a 9 prím-e?
1 - nem muszáj vizsgálnunk, de osztója, attól még prím marad
2 - nem osztója, még lehet prm
3 - osztója, 3x3=9, tehát a 9 nem prím, az algoritmus hamisat ad vissza, nem is kell tovább nézni
Észreveheted, hogy ezek for ciklusok, i=2 a kezdő érték (mivel az egyet nem kell vizsgálni, az minden prímre igaz).
"A 7 nyilván nem lehet már osztója, mivel ha már kettőször vesszük az 14, ami nagyobb, mint a 13, innentől kezdve felesleges is tovább nézni"
7-ig is felesleges nézni, elég sqrt(13)-ig.
További 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!