How to check if a number is prime in C++

2 Answers

0 votes
#include <iostream>
#include <cstdlib>  
#include <ctime>
#include <cmath>

class calc
{
    public:
        bool isPrime(int n) {
            if (n == 0) return 0;
            if (n == 1) return 0;
            
            for (int i = 2; i <= sqrt(n); i++) {
                if (n % i == 0) {
                    return 0;
                }
            }
            
            return 1;
        }
};

int main()
{
    srand(time(NULL));
 
    calc c;
 
    for (int i = 0; i < 20; i++) {
        int n = rand() % 100 + 1;
        if (c.isPrime(n)) {
            std::cout << n << " - Prime" << "\n";
        }
        else {
            std::cout << n << " - Not Prime" << "\n";
        }
    }
}
 
 
/*
run:
 
24 - Not Prime
93 - Not Prime
94 - Not Prime
19 - Prime
7 - Prime
53 - Prime
58 - Not Prime
66 - Not Prime
86 - Not Prime
14 - Not Prime
22 - Not Prime
81 - Not Prime
66 - Not Prime
57 - Not Prime
52 - Not Prime
14 - Not Prime
71 - Prime
38 - Not Prime
95 - Not Prime
13 - Prime
 
*/

 



answered Feb 24, 2016 by avibootz
edited May 17, 2024 by avibootz
0 votes
#include <iostream>
#include <cmath>
 
int isPrime(int n) {
    if (n < 2 || (n % 2 == 0 && n != 2)) {
        return 0;
    }
  
    int count = floor(sqrt(n));
    
    for (int i = 3; i <= count; i += 2) {
        if (n % i == 0) {
            return 0;
        }
    }
    
    return 1;
}
  
int main(void) {
    int n = 97;
 
    if (isPrime(n)) {
        std::cout << "Prime number";
    } else {
        std::cout << "Not prime number";
    }
}
  
  
  
/*
run:
  
Prime number
  
*/

 



answered May 17, 2024 by avibootz
...