#define LIMIT 100000000000ULL // ilk 100 milyar sayı #define THREAD_COUNT 24 // 24 iş parçacığı kullanımı
// GMP kullanarak asal sayı kontrol fonksiyonu
bool is_prime_gmp(unsigned long long num) {
mpz_t n;
mpz_init_set_ui(n, num);
bool result = mpz_probab_prime_p(n, 15) > 0; // GMP'nin asal kontrol fonksiyonu
mpz_clear(n);
return result;
}
int main() {
unsigned long long prime_count = 0;
// OpenMP ile paralel döngü #pragma omp parallel for num_threads(THREAD_COUNT) reduction(+:prime_count)
for (unsigned long long i = 2; i <= LIMIT; i++) {
if (is_prime_gmp(i)) {
prime_count++;
}
}
std::cout << "ilk " << LIMIT << " sayıda " << prime_count << " asal sayı bulunmaktadır." << std::endl;
return 0;
}
hemen akabinde, 37-40 saniyede 1 milyar tamsayıda kaç asal olduğunu da buldu, %100 den, %2 ye düşüp yeniden %100 e çıkınca teklemiyor!
ilk 10000000000 sayıda 455052511 asal sayı bulunmaktadır. https://galeri.uludagsozluk.com/r/2380627/+
ve 1 dk sonra 4.4 ghz de yeniden 45 c dereceye düştü!