Raring Skrevet 15. juni 2004 Del Skrevet 15. juni 2004 dette programmmet skal finne to faktorer som blir det produktet brukeren taster inn. Men jeg får ikke noe output i det hele tatt! Noen som greier å se hva som er feil? <?php $faktor = '10'; $produkt1 = '0'; $produkt2 = '0'; while($produkt1 * $produkt2 != $faktor): //sånn at whilen avslutter når jeg har produktene if ($produkt1 * $produkt2 == $faktor) { //når produktene blir riktige lagres de i $produkt_ferdig $faktor_ferdig = "$produkt1 $produkt2"; } elseif ($produkt2 == 1000000) { /*Hvis $produkt2 er 1000000 så starter den på null igjen mens $produkt1 plusser på 1*/ $produkt2 = '0'; $produkt1++;} elseif ($produkt2 == 1000000) { /*Hvis denne slår ut så er tallet et primtall og kan ikke lages av to produkter som bare kan være hele tall.*/ $kan_ikke_finne = "Tallet du valgte er et primtall og kan derfor ikke ha to faktorer som er hele tall"; else { //denne slår ut hvis ingen av de andre slår ut, noe de burde. $feil = "det er en feil her!!"; } $produkt2++; //plusser en på $produkt2 hver runde endwhile; /*her skrives alle variablene som er blitt lagd i scriptet. Her får jeg desverre ikke no output*/ PRINT "$produkt1 <br>"; PRINT "$produkt2 <br>"; PRINT "$faktor <br>"; PRINT "$faktorferdig <br>"; PRINT "$a <br>"; PRINT "$kan_ikke_finne <br>"; ?> Kan noen være så snill å hjelpe meg? Lenke til kommentar
jorgis Skrevet 15. juni 2004 Del Skrevet 15. juni 2004 dette programmmet skal finne to faktorer som blir det produktet brukeren taster inn. Men jeg får ikke noe output i det hele tatt!Noen som greier å se hva som er feil? <?php $faktor = '10'; $produkt1 = '0'; $produkt2 = '0'; while($produkt1 * $produkt2 != $faktor): //sånn at whilen avslutter når jeg har produktene if ($produkt1 * $produkt2 == $faktor) { //når produktene blir riktige lagres de i $produkt_ferdig $faktor_ferdig = "$produkt1 $produkt2"; } elseif ($produkt2 == 1000000) { /*Hvis $produkt2 er 1000000 så starter den på null igjen mens $produkt1 plusser på 1*/ $produkt2 = '0'; $produkt1++;} elseif ($produkt2 == 1000000) { /*Hvis denne slår ut så er tallet et primtall og kan ikke lages av to produkter som bare kan være hele tall.*/ $kan_ikke_finne = "Tallet du valgte er et primtall og kan derfor ikke ha to faktorer som er hele tall"; else { //denne slår ut hvis ingen av de andre slår ut, noe de burde. $feil = "det er en feil her!!"; } $produkt2++; //plusser en på $produkt2 hver runde endwhile; /*her skrives alle variablene som er blitt lagd i scriptet. Her får jeg desverre ikke no output*/ PRINT "$produkt1 <br>"; PRINT "$produkt2 <br>"; PRINT "$faktor <br>"; PRINT "$faktorferdig <br>"; PRINT "$a <br>"; PRINT "$kan_ikke_finne <br>"; ?> Kan noen være så snill å hjelpe meg? Du kan ihvertfall begynne med å rydde i koden din. <?php $faktor = '10'; $produkt1 = '0'; $produkt2 = '0'; while($produkt1 * $produkt2 != $faktor) { if ($produkt1 * $produkt2 == $faktor) { $faktor_ferdig = "$produkt1 $produkt2"; } elseif ($produkt2 == 1000000) { $produkt2 = '0'; $produkt1++;} elseif ($produkt2 == 1000000) { $kan_ikke_finne = "Tallet du valgte er et primtall og kan derfor ikke ha to faktorer som er hele tall"; } // denne burde kanskje lukkes? else { $feil = "det er en feil her!!"; } $produkt2++; } echo "$produkt1 <br>"; echo "$produkt2 <br>"; echo "$faktor <br>"; echo "$faktorferdig <br>"; echo "$a <br>"; echo "$kan_ikke_finne <br>"; ?> Lenke til kommentar
[kami] Skrevet 15. juni 2004 Del Skrevet 15. juni 2004 Skjønner ikke helt åssen du har tenkt. Et tall kan deles opp i ganske mange faktorer... Så her er en liten snutt som deler opp tallet i alle faktorer som er mulig. Den minste faktoren et tall kan deles på er 2, så vi starter på to og går oppover mot tallet (eller resten av tallet). Til dette bruker vi operatoren %, som forteller oss om det er en rest i regnestykket. 4/2 = 2, det gir ingen rest: derfor vil 4%2 gi 0, som betyr at det er 0 i rest. 4/3 = 1,333.. gir rest, 4%3 vil gi 1 i rest (4/3 går EN gang, 4-3 = 1) $tall_input = 1645; $faktor = 2; echo "tallet: $tall_input kan deles opp i faktore(ene):<br>"; while ($faktor<$tall_input) { if ( ($tall_input%$faktor) == 0 ) { echo "$faktor<br>\n"; $faktor_array[] = $faktor; $tall_input /= $faktor; $faktor = 2; } else { $faktor++; } } // få med resten... (primtall) $faktor_array[] = $tall_input; echo "$tall_input<br>"; // her er alle leddene i et array om du trenger dem til noe annet enn output print_r($faktor_array); Output: tallet: 1645 kan deles opp i disse faktor(ene): 5 7 47 Array ( [0] => 5 [1] => 7 [2] => 47 ) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå