Pessoal, estou em dúvida sobre a lógica a usar para para o seguinte desafio:
- Escrever um script PHP que imprima todos os números inteiros de 1 a 100. Entre cada número, imprima os números dos quais cada um é multiplo (entre colchetes e separados por vírgula), e caso o número seja multiplo somente de si mesmo, imprima "[PRIME]". (A resposta deve ser devolvida em JSON no endpoint /)
Até agora, consegui resolver a segunda parte do desafio, (retornando [PRIME] para os números primos, mas não sei como implementar a primeira parte. segue codigo abaixo (estou usando o symfony)
public function index(): Response
{
/* Finding The Prime Numbers */
$multipleList = [];
$number = 2 ;
while ($number < 100)
{
$div_count=0;
for ( $i=1;$i<=$number;$i++)
{
if (($number % $i) == 0)
{
$div_count++;
}
}
if ($div_count<3)
{
$rawPrimal[] = $number;
}
$number++;
}
for($i=1;$i<=100;$i++) {
if(!in_array($i, $rawPrimal)) {
$multipleList[] = $i;
}
}
/* Building the CONVERTED PRIME Array */
foreach ($rawPrimal as $primal) {
$primal = $primal . " - [PRIME]";
$convertedPrime[] = $primal;
}
/* Building the FINAL Merged Array */
$output = [...$multipleList, ...$rawPrimal];
for($i = 1; $i <= count($output); $i++) {
if(in_array($i, $rawPrimal)) {
$output[$i] = "[PRIME]";
}
if(!in_array($i, $rawPrimal)) {
if($i % 2 === 0 && $i % 5 === 0) {
$multiples[] = $i;
}
}
}
return new JsonResponse(['RAW PRIME' => $rawPrimal, 'CONVERTED PRIME' => $convertedPrime, 'Merged Array' => $output, 'Array of Multiples' => $multiples]);
}
Os multiplos deveriam ser arrays contidos em cada um dos indices do array principal, de forma que:
$output[$i] = array("aqui devem aparecer todos os numeros que sao multiplos do numero índice)
não sei como fazer isso =(