Per il Debug Friday di questa settimana abbiamo pensato di inserire un codice che ripassa i cicli for e gli if grazie ai numeri triangolari.

COSA SONO I NUMERI TRIANGOLARI

I numeri triangolari sono numeri rappresentabili in forma di triangolo (equilatero o isoscele); creato un insieme contenente una certa quantità di elementi pari al numero in oggetto, è possibile disporre tali elementi in modo da raffigurare un triangolo.
Per calcolare ad esempio il quinto numero triangolare, bisogna fare la somma dei primi cinque numeri naturali; in questo modo il sesto numero triangolare risulterà uguale alla somma dei primi sei e via così all’infinito.
Il codice di oggi trova il numero triangolare che allo stesso tempo conta 100 divisori.

CODICE

package main;

public class TringolareBug
{
//Un numero triangolare è un numero dato dalla somma dei primi n numeri naturali, prendiamo un esempio:
//il quarto numero triangolare è 10, ovvero 1+2+3+4 = 10, il quinto è 15 = 1+2+3+4+5
//Il nostro obiettivo è trovare un numero triangolare N che abbia 100 divisori

static int triangolare(int n)
{
int ris = n + (n>0 ? triangolare(n-1) : 0);
return ris;
}

static int calcolaDivisori(int n)
{
int ris = 0;
for(int i=1; i<=n/2; i++)
if(n%i==0)
ris++;
return ris;
}

public static void main(String[] args)
{
for(int i=1; true; i++)
if(calcolaDivisori(triangolare(i))==100)
{
System.out.println(“Il numero triangolare che cerchi è il ” + i +”esimo”);
break;
}
}

}
Buon divertimento e ci vediamo Lunedì alle 13:10 per la soluzione.


Se siete interessati ad approfondire il discorso, iscrivetevi alla nostra newsletter e seguite la pagina Facebook di Formati e Occupati.
Se invece volete nuovi codici da studiare e provare, visitate il nostro blog