# Teorema dei quattro quadrati

**URL:** <https://forum.olinfo.it/t/teorema-dei-quattro-quadrati/4543>\
**Category:** Aiuto\
**Created:** [29 Marzo 2017, 9:16pm UTC](https://forum.olinfo.it/t/teorema-dei-quattro-quadrati/4543 "2017-03-29T21:16:09Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![db2000](https://forum.olinfo.it/user_avatar/forum.olinfo.it/db2000/32/391_2.png) [@db2000](https://forum.olinfo.it/u/db2000)\
**Post date:** [29 Marzo 2017, 9:16pm UTC](https://forum.olinfo.it/t/teorema-dei-quattro-quadrati/4543/1 "2017-03-29T21:16:09Z")

</div>

Potete darmi una dritta per risolvere [teorema dei quattro quadrati](https://cms.di.unipi.it/#/task/abc_qquadrati/statement)?  
Pensavo di implementarlo con la programmazione dinamica, fare un vettore di grandezza 2^15, riempire questo vettore con i vari valori, poi leggere la richiesta e per ogni V stampare vettore[V]  
Detto questo, non so come creare il vettore:  
l’1 può esser fatto in 1 modo (1**2)  
il 2 può esser fatto in 1 modo (1 **2 + 1** 2)  
il 3 può esser fatto in 1 modi (1 **2 + 1** 2 + 1**2)  
il 4 può esser fatto in 2 modi  
ecc…  
Andando avanti a studiare i valori, speravo di trovare qualche proprietà che mi facesse capire come impostare il vettore, invece proprio niente.  
Avete qualche dritta?  
Grazie 💕

---

<div class="post-metadata">

**Author:** ![doublechar14](https://forum.olinfo.it/user_avatar/forum.olinfo.it/doublechar14/32/426_2.png) [@doublechar14](https://forum.olinfo.it/u/doublechar14)\
**Post date:** [29 Marzo 2017, 10:16pm UTC](https://forum.olinfo.it/t/teorema-dei-quattro-quadrati/4543/2 "2017-03-29T22:16:46Z")

</div>

l’1 può essere fatto in un modo che sarebbe a=1, b=c=d=0 dato che 0^2 fa 0.

Io l’ho risolto usando dei cicli annidati per crearmi il vettore (si, la tua idea è corretta).

---

<div class="post-metadata">

**Author:** ![db2000](https://forum.olinfo.it/user_avatar/forum.olinfo.it/db2000/32/391_2.png) [@db2000](https://forum.olinfo.it/u/db2000)\
**Post date:** [31 Marzo 2017, 11:51am UTC](https://forum.olinfo.it/t/teorema-dei-quattro-quadrati/4543/3 "2017-03-31T11:51:12Z")

</div>

Puoi darmi una mano per come crearmi il vettore?  
Non riesco proprio

---

<div class="post-metadata">

**Author:** ![filippos](https://forum.olinfo.it/user_avatar/forum.olinfo.it/filippos/32/103_2.png) [@filippos](https://forum.olinfo.it/u/filippos)\
**Post date:** [1 Aprile 2017, 11:11am UTC](https://forum.olinfo.it/t/teorema-dei-quattro-quadrati/4543/4 "2017-04-01T11:11:58Z")

</div>

Un’idea banale può essere quella di eseguire tutte le possibili somme, contandole una ad una.

0 + 0 + 0 + 0 = 0 -\> V[0]++  
0 + 0 + 0 + 1 = 1 -\> V[1]++  
0 + 0 + 0 + 4 = 4 -\> V[4]++

A questo punto l’unico particolare a cui fare attenzione rimane evitare di contare più di una volta la stessa somma (ad esempio 1 + 0 + 0 + 0 e 0 + 1 + 0 + 0)
