A feladatom az, hogy "Írjon függvényt, mely eldönti egy számról, hogy az prímszám-e vagy sem. " Megoldásom: <? Php $szam = 25; if ($szam%1==0) && ($szam%$szam==0) && ($szam%2! =0) { echo "prímszám"; } ? > De nem jó, miért nem?
Már megbocsáss, de mi ez?
Tudod mi az a prím??? 1-el osztod, meg magával? azt minek? Ellenőrzöd, hogy a processzor tud-e még számolni?
Aztán ellenőrzöd, hogy kettővel osztható-e. Segítek, a 25 5-el osztható, azaz nem lehet prím, a függvényedben pedig mindegyik if feltétel true-ra értékelődik ki.
Másodszor: Hol látsz te itt függvényt? én csak kódot látok, ami függvényen kívül van.
Segítek, kezdetnek:
function prim_e($szam){
//és itt szépen egy for ciklussal végigmész 2-től a számig, és ha valamelyik osztja, akkor return false.
//Végén meg return true
}
Na ez egy függvény.
Elég a szám gyökéig vizsgálni hogy osztható-e.
for($i = 0, $j = round(sqrt($szam)); %i < %j; %i++)
if(%szam % $i == 0) return 'nem prim';
return 'prim';
Ha nem látod hogy miért nem jó a te megoldásod nem nagyon kellene ezzel foglalkozni.
Bírom ezt a fórumot:DD Ha valaki segítséget kér, akkor rögtön hülye-buta-nemidevaló.
Egy viszonylag értelmes kérdést fogalmazott meg, nyilván egy egyszerű probléma a fenti, de nem annyit lökött ide, hogy "pls oldjátok meg nekem és küldjétek el a kódot".
#3 Én ma úgy hagytam abba a munkát, hogy egy adott problémára még nem találtam megoldást. Akkor én is mondjak fel?
Azért nem jó, mert azt nem vizsgálod sehol, hogy más egész számmal osztható-e. Hs igen -> nem prím.
Azt, hogy eggyel és önmagával osztható-e, nem kell vizsgálnod, ez minden egész számra igaz.
Azért lett leordítva a kérdező feje, mert kihagyott pár leckét. pl: Írjon egy függvényt... Írjon egy ciklust...
Ez egy elágazás, ha jól látom. Amíg nincsen tisztában az alapfogalmakkal, addig ne ezen a feladaton törje a fejét.
Nem hagytam ki néhány leckét,meg lehet oldani függvény nélkül is, és mint mondtam fentebb nem a függvényre koncentráltam, azt később is hozzá lehet írni. Ja, és utolsó, köszi a nagy nulla segítségedet.
Itt van a megoldás:
function prime($szam){
for($i=2;$i<$szam;$i++){
if($szam%$i==0){
return 0;
}
}
return 1;
}
$ertek = prime(7);
if($ertek==0){
echo "Nem prímszám";
}else{
echo "prímszá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!