Advertisement
Soupborsh

3_digit_primes

Jan 17th, 2025 (edited)
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | Source Code | 0 0
  1. #include <cmath>
  2. #include <cstdio>
  3. #include <vector>
  4.  
  5. bool is_prime(unsigned int num);
  6. unsigned int find_bigger_prime(unsigned int num);
  7.  
  8. std::vector<unsigned int> prime_lookup = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31};
  9.  
  10. //Works only for 3 digit primes
  11. unsigned int find_bigger_prime(unsigned int num) {
  12.   num += 2;
  13.   while ((!is_prime(num)) && (num < 1000)) {
  14.     num += 2;
  15.   }
  16.   return num;
  17. }
  18.  
  19. bool is_prime(unsigned int num) {
  20.   unsigned int num_sqrt = (unsigned int)sqrt(num);
  21.   for (unsigned int i : prime_lookup) {
  22.     if (i > num_sqrt) {
  23.       break;
  24.     }
  25.     if ((num % i) == 0) {
  26.       return false;
  27.     }
  28.   }
  29.   return true;
  30. }
  31.  
  32. int main(void) {
  33.   unsigned int prime = 101;
  34.   while (prime < 1000) {
  35.     printf("%u ", prime);
  36.     prime = find_bigger_prime(prime);
  37.   }
  38.   putchar('\n');
  39.   return 0;
  40. }
  41.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement