programma php divisori di u numero

  • Creatore Discussione Creatore Discussione topolus
  • Data di inizio Data di inizio

topolus

Nuovo Utente
17 Dic 2008
9
0
0
ecco il testo del problema mi serve assolutamente:

Si sviluppi una pagina PHP che risolva il seguente problema :
dato una valore numerico intero (assegnato manualmente ad una
variabile), visualizzare
in una tabella HTML la lista di tutti i numeri primi che sono anche
divisori del numero intero inserito.
 
PHP:
<?php
function getNumeriPrimi($value) {
	$setaccio = array_fill(0, $value, 1);
	for ($index = 3; $index < $value; $index += 2) {
		if ($setaccio[$index] == 1) {
			for ($subindex = $index * 2; $subindex < $value; $subindex += $index)
				$setaccio[$subindex] = 0;
		}
	}
	$counter = 0;
	for ($index = 1; $index < $value; $index++) {
		if ($index % 2 != 0 && $setaccio[$index] == 1) {
			$result[$counter++] = $index;
		}
	}
	return $result;
}

// Inserisci qui il valore numerico intero da analizzare
$valore = 1000;

?>

<html>
	<body>
		<table align="center" border="1">
			<tr>
				<?php
					$primi = getNumeriPrimi($valore);
					for ($index = 0; $index < count($primi); $index++) {
						if ($valore % $primi[$index] == 0) {
							echo "<td>$primi[$index]</td>";
						}
					}
				?>
			</tr>
		</table>
	</body>
</html>
 
ciao
ritengo che sia una piccola imperfezione, ma anche il numero 2 è un numero primo, lo script, per il valore 1000, da come risultato 1 e 5
 
Hai ragione, è stata una mia dimenticanza, infatti il numero 2 è l'unico numero pari ad essere primo, provvedo alla correzione.
Grazie per la segnalazione.
 
Così dovrebbe andare:

PHP:
<?php
function getNumeriPrimi($value) {
	$setaccio = array_fill(0, $value, 1);
	for ($index = 3; $index < $value; $index += 2) {
		if ($setaccio[$index] == 1) {
			for ($subindex = $index * 2; $subindex < $value; $subindex += $index)
				$setaccio[$subindex] = 0;
		}
	}
	$counter = 1;
	$result[0] = 2;
	for ($index = 3; $index < $value; $index++) {
		if ($index % 2 != 0 && $setaccio[$index] == 1) {
			$result[$counter++] = $index;
		}
	}
	return $result;
}

// Inserisci qui il valore numerico intero da analizzare
$valore = 1000;

?>

<html>
	<body>
		<table align="center" border="1">
			<tr>
				<?php
					$primi = getNumeriPrimi($valore);
					for ($index = 0; $index < count($primi); $index++) {
						if ($valore % $primi[$index] == 0) {
							echo "<td>$primi[$index]</td>";
						}
					}
				?>
			</tr>
		</table>
	</body>
</html>
 
volevo modificare, ma non ho fatto in tempo

PHP:
        <table align="center" border="1"> 
            <tr> 
                <?php 
                    $primi = getNumeriPrimi($valore); 
                    for ($index = 0; $index < count($primi); $index++) { 
                        if ($valore % $primi[$index] == 0) { 
                            echo "<td>$primi[$index]</td>"; 
                        }
                        if($valore % 2 == 0 && $index== 0){
		echo "<td>2</td>";
	            }

                    } 
                ?> 
            </tr>
 
volevo modificare, ma non ho fatto in tempo

PHP:
        <table align="center" border="1"> 
            <tr> 
                <?php 
                    $primi = getNumeriPrimi($valore); 
                    for ($index = 0; $index < count($primi); $index++) { 
                        if ($valore % $primi[$index] == 0) { 
                            echo "<td>$primi[$index]</td>"; 
                        }
                        if($valore % 2 == 0 && $index== 0){
		echo "<td>2</td>";
	            }

                    } 
                ?> 
            </tr>


intanto ti ringrazio per l'aiuto però una cosa quando lo vado ad diciamo eseguire me fa compari na mini tabella al centro con i numeri 2 2 5 e bha....
 
ciao
hai per caso fatto la correzione che dicevo io e la correzione di satifal?
perchè se le hai fatte entrambe è logico che ti venga due volte il due.
per quanto riguarda la presentazione dei numeri spero che un po' di conoscenza php per migliorarla dovresti averla
 
ciao
hai per caso fatto la correzione che dicevo io e la correzione di satifal?
perchè se le hai fatte entrambe è logico che ti venga due volte il due.
per quanto riguarda la presentazione dei numeri spero che un po' di conoscenza php per migliorarla dovresti averla


si ma nn ho capito quel due e 5 ke vogliono dire cmq è la primavolt ke utilizzo php....
 

Discussioni simili