#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;
}
} C Programlama Basit Yardım (R10+)
4
●103
- 23-12-2021, 21:38:11Arkadaş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.
- 23-12-2021, 21:41:05
#include <stdio.h> main() { int sayi; int toplam = 0; printf("Bir sayi giriniz: "); scanf("%d",&sayi); for(int i = 1; i < sayi; i++) { if(sayi % i == 0){ toplam += i; } } if(sayi == toplam){ printf("%d Sayisi mukemmel .",sayi); } else{ printf("%d Sayisi mukemmel degil.",sayi); } } - 23-12-2021, 21:45:32Hocam teşekkür ederim ilettiğiniz kod doğru ancak ben döngü içine alıp kullanıcı örneğin 6 rakamını girdiğinde 6 ve 56 arasındaki sayıların mükemmel olup olmadıklarını tespit etmeye çalışıyorum. Otomatik yapması gerekiyor. Yani 6'yı kullanıcı girdiğinde konsolda yalnızca 6 ve 28'i basması lazım.tia adlı üyeden alıntı: mesajı görüntüle
- 23-12-2021, 21:56:03Üyeliği durdurulduSorun, sürekli sadece girilen sayının kontrol edilmesi ve tüm bölenlerin toplanmadan kontrol edilmesidir.
Wikipedia adlı üyeden alıntı:
- 23-12-2021, 22:02:10Çok teşekkür ederim hocam, şimdi anladım.KendineCoder adlı üyeden alıntı: mesajı görüntüle
