Hej!
Jag börjar med att förklara vad jag försöker åstadkomma, så kommer det således vara lättare att hjälpa mig
Säg att jag har talet 24. Talet har flera faktorer, och om vi faktorerar talet så får vi följande tal:
1, 2, 3, 4, 6, 8, 12
Bortsett från de första två faktorerna, så är inga övriga faktorer primtal. Om vi istället faktorerar talet 49 så får vi två faktorer, 1 och 7. 7 är ett primtal.
Det jag vill göra är helt enkelt att primtalsfaktorisera tal med hjälp av PHP.
En funktion som faktoriserar ett tal:
Sedan vill jag ju även se om faktorerna är primtal. Här vi har vi en funktion som tar reda på detta:
Det jag har problem med är att kombinera dessa. Mitt försök bygger på att jag skippar att skriva en funktion som tar reda på primtal, för att istället göra det i en foreach-loop som utför koden på varje array-item, vilket borde vara varje faktor av talet $myNumber.
Det jag vill göra är alltså att jag vill loopa igenom array:en som innehåller faktorer, och för varje faktor ta reda på om det talet är ett primtal eller inte, och sedan fortsätta vidare till nästa faktor. Varje primtalsfaktor ska pushas in i en array. Hur gör jag detta på bästa sätt?
Funderade på om man kunde ha en for-loop inuti en foreach-loop. For-loopen är alltså koden som kollar om talet är ett primtal eller inte.
Mvh, Mulle-Meth
Jag börjar med att förklara vad jag försöker åstadkomma, så kommer det således vara lättare att hjälpa mig
Säg att jag har talet 24. Talet har flera faktorer, och om vi faktorerar talet så får vi följande tal:
1, 2, 3, 4, 6, 8, 12
Bortsett från de första två faktorerna, så är inga övriga faktorer primtal. Om vi istället faktorerar talet 49 så får vi två faktorer, 1 och 7. 7 är ett primtal.
Det jag vill göra är helt enkelt att primtalsfaktorisera tal med hjälp av PHP.
En funktion som faktoriserar ett tal:
Kod:
<?php
$myNumber = 49;
$factors = array();
function factorize($myNumber, $factors) {
for($i = 1; $i < $myNumber; $i++) {
if($myNumber % $i == 0) {
array_push($factors, $i);
}
}
print_r($factors);
}
factorize($myNumber, $factors);
?>
Sedan vill jag ju även se om faktorerna är primtal. Här vi har vi en funktion som tar reda på detta:
Kod:
<?php
$myNumber = 13;
$flag = True;
function isPrime($myNumber, $flag) {
for($i = 2; $i < $myNumber; $i++) {
if($myNumber % $i == 0) {
$flag = False;
}
}
}
isPrime($myNumber, $flag);
if($flag == True) {
echo 'The number IS a prime!';
}
else {
echo 'The number is NOT a prime!';
}
?>
Det jag har problem med är att kombinera dessa. Mitt försök bygger på att jag skippar att skriva en funktion som tar reda på primtal, för att istället göra det i en foreach-loop som utför koden på varje array-item, vilket borde vara varje faktor av talet $myNumber.
Kod:
<?php
$myNumber = 49;
$factors = array();
$primeFactors = array();
function factorize($myNumber, $factors) {
for($i = 1; $i < $myNumber; $i++) {
if($myNumber & $i == 0) {
array_push($factors, $i);
}
}
}
factorize($myNumber, $factors);
// Det är här jag kör fast!
?>
Det jag vill göra är alltså att jag vill loopa igenom array:en som innehåller faktorer, och för varje faktor ta reda på om det talet är ett primtal eller inte, och sedan fortsätta vidare till nästa faktor. Varje primtalsfaktor ska pushas in i en array. Hur gör jag detta på bästa sätt?
Funderade på om man kunde ha en for-loop inuti en foreach-loop. For-loopen är alltså koden som kollar om talet är ett primtal eller inte.
Mvh, Mulle-Meth