Aşağıdaki gönderilen bir sayının asal olup ulmadığını sınayan bir fonksiyon var. 2,3 ve 5 için programın daha hızlı çalışması sağlanmış fakat 7 den sonraki kontroller için yapılan k * k <= val sınaması kafamda ? bıraktı kodu anlayıp izah edecek olanlara şimdiden teşekkür ederim.
int isprime(int val)
{
int k;
if (val == 0 || val == 1)
return 0;
if (val % 2 == 0)
return val == 2;
if (val % 3 == 0)
return val == 3;
if (val % 5 == 0)
return val == 5;
for (k = 7; k * k <= val; k += 2)
if (val % k == 0)
return 0;
return 1;
}
|