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;
}
}