1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include <stdio.h> #include <stdint.h> // uint64_t, uint32_t #include <inttypes.h> // PRIu64 #include <stdbool.h> // bool bool is_prime(uint32_t num); int main(void) { uint32_t max_num = 2000000; uint32_t num = 3; uint64_t sum = 2; // for even prime number: 2 for (num = 3; num < max_num; num += 2) if (is_prime(num)) sum += (uint64_t)num; printf("%" PRIu64 "\n", sum); return 0; } bool is_prime(uint32_t num) { uint32_t i = 5; bool is_prime_return = true; if (num == 1) { is_prime_return = false; } else if (num <= 3 && num > 1) { // 2, 3 // is_prime_return = true; } else if (num % 2 == 0 || num % 3 == 0) { is_prime_return = false; } else { for (i = 5; i * i <= num; i += 6) if (num % i == 0 || num % (i + 2) == 0) { is_prime_return = false; break; } // is_prime_return = true; } return is_prime_return; } | cs |
보장된 비트수를 원하면 stdint.h 써 C 표준이야
댓글 0