Arkadaşlar aşağıdaki C kodunda ben girilen bir sayı ve önündeki 50 sayının mükemmel sayı olup olmadığını tespit edip konsola yazdırmaya çalışıyorum. Kod hata vermeden çalışıyor ama örneğin 6 girdiğimde sadece 6 ve 28'i yazdırması gerekirken arada 24'ü de mükemmel sayı olarak alıyor. Nerede hata yapıyorum görebilen varsa şimdiden çok teşekkür ederim.
#include<stdio.h>

int main()
{ 
int girilenSayi;
printf("Lütfen sayıyı giriniz.\n");
scanf("%d", &girilenSayi);

int carpan=1, counter=0;

for(int i = 0; i<50; i++, girilenSayi++) {
     for(carpan; carpan<girilenSayi; carpan++) {
       if(girilenSayi % carpan == 0)
       {
       counter = counter + carpan;
          
          if(girilenSayi == counter)
          {
          printf("%d bir mükemmel sayıdır.\n", girilenSayi);
          }

       }
}
    carpan=1;
    counter=0;

}

}