cevaplar için teşekkürler
bilmem işini görür mü?
C'nin notasyonunu hatırlamıyorum fonksiyonları ve komutları ona göre düzenlersin
for (i==girilen_sayi-1;i==2;i--){
kalan=mod(girilensayi,i);
if (kalan=0){
bolen++;
}
}
#include<stdio.h>
int main()
{
long long int k,n,t,sum=0;
scanf("%lld",&t);
while(t)
{
scanf("%lld",&n);
for(k=1;k<n;k++)
{
if(n%k==0)
{
sum=sum+k;
}
}
printf("%lld\n",sum);
t--;
sum=0;
}
return 0;
}
gavur formlarında bulduğum bu kodları gönderdim
yanlız anladığım kadarı ile o kod 1'i de sayıyor
1 ve kendisi hariç demişsin
#include<stdio.h>
#include<math.h>
int main()
{
int number, count=0, i;
printf("Sayiyi girin");
scanf("%d", &number);
printf("Sayinin bolenleri:\n");
for (i=2; i<number; i++)
{
if (number%i == 0 )
{
printf("%d, ", i);
count++;
}
}
printf("\n1 ve kendisi haric bolen sayisi: %d\n", count);
system("pause");
return 0;
}
sayının yarısına kadar kontrol etmek yeterli, ayrıca işlemi hızlandırma açısından eğer girilen sayı tek ise çift bir böleni olamayacağından çift sayıları kontrol etmeyebiliriz.
int bolen(int value){
int count =0,i=value/2,inc=1;
if(value%2)
{
i = value/2 +1;
inc=2;
}
for(; i>1; i=i-inc)
if(value%i == 0) count++;
return count; }