Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2021-22 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

program01: risultato dei divisori diverso di un'unità

Uber Dan (320 points)
0 4 11
in Es1 by (320 points)
Salve a tutti! Nel program01 del primo homework sono incappato in una cosa strana. Con i numeri primi non ho nessun problema, mentre nella stampa dei divisori ad esempio, come risultato dovrei avere 128, 70, 154, invece il mio programma come risultato mi da' 127, 69, 153. Ma è una questione di arrotondamento di python oppure è (quasi sicuramente) un mio errore nella scrittura del codice?
224 views
closed

4 Answers

Best answer
e
en (1240 points)
3 8 18
by (1.2k points)
selected by
Ciao,

non penso sia un problema di python, forse, se hai un ciclo, in cui incrementi una variabile per trovarti i divisori, il problema potrebbe essere che stampi il numero prima di incrementarla, ma non ne sono sicura vista la generalità della domanda.

mi dispiace di non poter dirti di più
Uber Dan (320 points)
0 4 11
by (320 points)
Chiedo scusa per la generalità della domanda purtroppo non so bene come spiegarmi riguardo a questo problema. Comunque effettivamente potrebbe essere come dici te oppure avevo pensato anche al modo in cui ho utilizzato la funzione range(). Grazie per l'aiuto
Uber Dan (320 points)
0 4 11
by (320 points)
Ti ringrazio tantissimo sia te che il ragazzo Vlad avevate ragione, vorrei potervi dare ad entrambi la Best Answer!  Grazie a voi ho risolto il problema, grazie ancora per l'aiuto!
e
en (1240 points)
3 8 18
by (1.2k points)
Tranquillo, sono felice di esserti stata utile :)
Stefaniscion (1370 points)
4 15 32
by (1.4k points)
Puoi dare maggiori informazioni?
Comunque credo che il tuo problema sia legato, come dici tu, all'arrotondamento effettuato da una qualche divisione, magari con l'operatore "//"

Ti consiglio di ricontrollare attentamente tutto il codice e capire in quale preciso punto avviene l'errore
Uber Dan (320 points)
0 4 11
by (320 points)
Nell'arrotondamento ci speravo ma purtroppo ricontrollando ho visto che non faccio uso di divisioni, l'unica funzione che ci si avvicina è % ma non credo che possa causare un tale problema. Grazie per l'aiuto!
V
Vlad (4580 points)
2 14 24
by (4.6k points)

Dubito che sia questione di arrotondamento... potrebbe essere una situazione del tipo: ci troviamo nel 128° passaggio del ciclo , però magari tu stai prendendo il valore dell'indice che è 127.

Magari basta aggiungere un +1 quando fai l'assegnazione del valore, cioè se adesso hai divisore = indice, prova con divisore = indice+1

Uber Dan (320 points)
0 4 11
by (320 points)
Controllo subito e provo a fixare. Ti ringrazio per l'aiuto
Uber Dan (320 points)
0 4 11
by (320 points)
Ti ringrazio tantissimo sia te che la ragazza en avevate ragione, vorrei potervi dare ad entrambi la Best Answer!  Grazie a voi ho risolto il problema, grazie ancora per l'aiuto ad entrambi!
V
Vlad (4580 points)
2 14 24
by (4.6k points)
Sono contento che hai risolto!
Dai pure a en la best answer, non faccio troppo caso ai punti
Auron (15880 points)
32 126 194
by (15.9k points)

Occhio che se usi il metodo delle radici quadrate e non aggiungi +1 nell'indice di destinazione del ciclo per i quadrati perfetti ti perdi il divisore che equivale alla radice quadrata stessa...