Salve!
Ho realizzato per esercizio un programma che calcoli un numero prestabilito di numeri perfetti (numeri i cui divisori sommati danno il numero stesso).
Il codice è il seguente:

codice:
/*Programma per il calcolo di N numeri perfetti con N arbitrario*/

#include <stdio.h>

main()
{
      /*Dichiarazione variabili*/
      int n, i, k, cont, somma;
      
      /*Lettura N*/
      printf("Quanti numeri primi devo trovare?\n");
      scanf("%d", &n);
      i=0;
      
      /*Ricerca numeri perfetti*/
      cont=0;
      k=0;
      do {
      i++;
      somma = 0;
      for(k=1; k <= i/2; k++) {
      if((i % k) == 0)
      somma += k;
      }
      if(somma == i){
      printf("\n%d", &i);
      cont++;
      }
      } while(cont <= n);
      scanf("%d", &n);
      return(0);
}
Tuttavia mi da come output semplicemente:
2293616
2293616
2293616

Dov'è l'errore?