Этот код работает только для небольших пределов и даже тогда иногда он дает неправильный ответ.
Каждый раз он терпит неудачу на больших числах, застревая на 3500 простых числах.
Вызывают ли потоки память утечка как-то? Я новичок в C, и эта задача меня затянула, заранее спасибо за помощь!
Код: Выделить всё
#include
#include
#include
#include
int limit = 5000000;
pthread_mutex_t mutex;
int primes_count = 0;
typedef struct {
int value;
int is_prime;
} Number;
int verify_if_number_is_prime(int number) {
if (number value);
if (number->is_prime == 1){
pthread_mutex_lock(&mutex);
primes_count++;
pthread_mutex_unlock(&mutex);
}
pthread_exit(0);
}
int main() {
Number* numbers = malloc(sizeof(Number) * limit);
for (int i = 1; i
Подробнее здесь: [url]https://stackoverflow.com/questions/78173802/why-is-my-c-prime-number-calculator-failing[/url]
Мобильная версия