Bu problem 10001. asal sayıyı bulmamızı istiyor.
- İlk olarak, asal bir sayının asal olup olmadığını tespit eden bir “isPrime” fonksiyonu oluşturalım. Bu fonksiyon; eğer sayı asalsa 1, değilse 0 değerini döndürecek.
- Main içerisinde başlangıç değeri “2” olan number değişkenini ve başlangıç değeri “0” olan i değişkenini tanımlayalım. “Number” gezdiğimiz asal olup olmadığını kontrol ettiğimiz sayı iken, “i” ise kaçıncı asal sayıda olduğumuzu gösteren sayı oluyor.
- Bİr sonsuz döngü oluşturalım. Döngü içerisinde “isPrime” fonksiyonunu kullanarak “number”ın asal olup olmadığını kontrol edelim. Eğer asalsa i’nin değerini 1 arttıralım.
- Yine döngü içerisinde i’nin 10001’e eşit olup olmadığını kontrol edelim. Eğer eşitse break deyimiyle döngüden çıkalım.
- Son olarak döngü içerisinde number’ın değerini 1 arttıralım.
Şimdi bu işlemleri bir programlama dili ile gerçekleştirelim.
#include <stdio.h>
int isPrime(int number);
int main() {
int number = 2,
i = 0;
while(1) {
if(isPrime(number))
i++;
if(i == 10001)
break;
number++;
}
printf("%d", number); // Result: 104743
return 0;
}
int isPrime(int number) {
for(int i=2; i<=number/2; i++) {
if(number % i == 0) {
return 0;
}
}
return 1;
}
Ve sonuç 104743.