Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 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 2023-24 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.

Efficienza secondo esercizio

T
TCM (980 points)
11 24 30
in Es2 by (980 points)
recategorized by
Qualcuno conosce un metodo più rapido per ottenere i divisori di un numero?

E' l'ultima carta che ho. Ora faccio il controllo (dell' if resto x su y uguale a zero...) fino alla  meta del numero.

:)
564 views
closed with the note: Google is your friend

3 Answers

andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
(facepalm)         .
T
TCM (980 points)
11 24 30
by (980 points)
?
Dunque...
?????
jef (4930 points)
1 2 16
by (4.9k points)
Ti sei accorto che è l'account del prof a cui hai risposto? lol
Comunque il metodo più efficiente è quello suggerito da molti, ovvero iterare fino alla radice quadrata del numero e prendere i divisori x e N/x. Cerca il metodo su google
c
costinmoraru (270 points)
0 0 2
by (270 points)
Ciao,

io ho usato il metodo consigliato da altri. Usando la radice quadrata. E un metodo molto eficace. Ti consiglio di cercare informazioni sui metodi matematici per ottenere i divisori di un numero e succesivamente lo devi solo convertire in codice. Spero ti sia utile.
Auron (15880 points)
51 126 194
by (15.9k points)
edited by
È stato chiesto mille volte, amico mio...
E la risposta è sempre stata la stessa...
Fai un ciclo che parte da 0 e finisce alla radice del numero di cui cerchi i divisori +1.
All'interno inserisci la condizione per verificare se il numero presente nella variabile dopo il For (chiamiamola "i") sia un multiplo o meno di N.
Se si verifica, allora scrivi in una lista sia il numero "i", sia N/i.
Ed voilà...
Attento nei casi in cui N è quadrato perfetto ;)

P.s. Prova a contrassegnare quella che credi sia la migliore risposta (che non è necessariamente questa), quando fai una domanda e ti viene fornito aiuto ;)

Tutti saranno molto più contenti e propensi ad aiutarti in futuro :)