Forum >> Principianti >> Codice funzionante, perchè?

Pagina: 1

Buonasera,




volevo provare a fare un esercizietto (credendo che fosse semplice). Incredibilmente, sono riuscito a farlo senza sapere il perché... (e senza averlo copiato da altri siti).




Mi viene il dubbio che il programmino abbia degli errori, e che mi funzioni per colpo di fortuna solo su alcuni numeri.




Il programma in questione è quello di inserire un numero, e farmi dire in risposta dall'interprete se è un numero primo oppure no, in base al codice inserito che è il seguente:

numero=int(input("inserisci il numero"))
def numero_primo(numeroPrimo):
  numeroPrimo=numero
if not numero != 2:
    print("è un numero primo!")
elif numero == numero== numero / numero == 1 and numero == numero / 1 == numero:
    print("è un numero primo!")
else:
    print(" non è un numero primo")


Dopo anni che non tocco libri scolastici ho letto su Internet, e mi sono informato che la caratteristica dei numeri primi, è che sono dei numeri divisibili solo per se stessi e per uno. Il problema è che anche con numeri non primi ottengo la stessa cosa:

4 diviso se stesso = 1 e 4/1= il dividendo. Quindi perché se provo ad inserire numeri non primi l'interprete riesce a capire che non è un numero primo?




Scusate l'ignoranza, ma come ho già scritto in altri post ho la terza media, e non tocco libri da 10 anni, per cui non riesco a capire se è sbagliata la mia definizione matematica di numero primo(che ho trovato su Internet) oppure c'è qualcosa che non va nel codice.




--- Ultima modifica di harimau08 in data 2016-10-11 17:29:30 ---
ciao
sistemando l'indentazione ed aggiungendo la chiamata alla funzione lo script parte, ma se gli dai 17 in input, risponde che non è numero primo



Hai ragione, e non so perchè..

effettivamente neanche con altri numeri funziona, tipo il 31, e ci saranno sicuramente altri casi.




Però la cosa che non capisco è il perché funziona e se funziona perché fa delle eccezioni con alcuni numeri.




Come ho scritto su, su Internet ho letto la definizione di numero primo e c'era scritto che per regola è un numero divisibile solo per se stesso e per uno.




Il problema è che anche i numeri non primi sono divisibili per uno e per se stessi, quindi perché mi funziona il programma? Come fa a capire quale numero è primo se sono tutti divisibili per uno e per se stessi?
Ora non ho a disposizione un terminale con python, e non sono
Ancora pratico di python 3, ma nell'istruzione da te immesa :
If ecc....
Sei sicuro che questo (==) sia il 'simbolo' di confronto,
Oppure e quello di eguaglianza?
Es.
Numero == 0
print (numero)

If numero = numero / numero :
print ("mha che sia un numero")
else:
print (numero + 1)

Tieni presente che quello appena scritto è stato scritto da cell.
riguardo l'if su un manuale c'è scritto che gli uguali sono doppi, mentre invece è singolo quando si vuole assegnare un valore ad una variabile.




Alla fine mi sono informato altrove, e m'han fatto capire che il codice è completamente sbagliato, infatti numeri come il 17, il 31.. non li segna come numeri primi, quindi questo tipo di programma dovrò farlo con maggior senso e criterio.


Pagina: 1



Esegui il login per scrivere una risposta.