M3.1011 PyGame[5*]

* indica problema più tosto; aperto a tutti.

Un numero si dice triangolare se è la somma dei primi n numeri:

1 = 1

3 = 1+2

6 = 1+2+3

10 = 1+2+3+4

eccetera.

I divisori dei numeri triangolari sono:

1 : 1

3: 1,3

6: 1,2,3,6

quindi il primo numero triangolare che ha più di 3 divisori è 6.

Trovare il primo numero triangolare che ha più di 500 divisori.

 

valore: 3 crediti

valore algoritmo ottimo: 3 crediti

Annunci
Questa voce è stata pubblicata in Algoritmi, Informatica, M3, M3.1011, Programmazione e contrassegnata con , , . Contrassegna il permalink.

16 risposte a M3.1011 PyGame[5*]

  1. Edoardo Bastianetto ha detto:

    Per accelerarlo si potrebbe fare cosi :
    Prima di entrare nel ciclo che conta i divisori, si potrebbe testare se il numero è divisibile per 2; se non lo è sul ciclo si può mettere come step 2.
    (se non è divisibile per 2 non è divisibile ne per 4,6,8 ecc )

  2. bobcarr ha detto:

    ho caricato la soluzione in J in dropbox
    tempo di esecuzione 0,14 sec (140 millisecondi)

  3. bobcarr ha detto:

    ok Bastianetto

    3 crediti

    non resta che migliorare il tempo

  4. Edoardo Bastianetto ha detto:

    Ha girato tutta la notte, e mi è venuto 76576500 con 576 divisori, giusto ?

  5. Edoardo Bastianetto ha detto:

    Lo sto facendo girare ma si ferma al 2162160, che ha 320 divisori (in teoria).
    Con il numero di divisori maggiori non ne trova altri, per adesso.

    • Alessandro Magoga ha detto:

      secondo me invece li trova ma diventa lunghissimo 😀

      • Edoardo Bastianetto ha detto:

        io sono arrivato a controllare numeri superiori a 13 miliardi, ma mi sa che ho sbagliato. A te che risultati vengono ?

        • Alessandro Magoga ha detto:

          credo siano altini come numeri. io sto cercando un metodo più veloce per trovare i divisori e controllarne il numero.

  6. Alessandro Magoga ha detto:

    sempre usando le istruzioni “comuni” (quelle semplici trovate/imparate in laboratorio) vero?

I commenti sono chiusi.