/************************************************* How common are primes? Write a program that reads a number n from the user and returns the percentage of the first n integers that are prime (we'll say 1 is *not* prime). Write and use a predicate isprime(k) in your program. Remember, a number k is prime if 1 and k are the only numbers that evenly divide k. *************************************************/ #include <iostream> using namespace std; bool isprime(int); int main() { // Get value n int n; cout << "Enter n: "; cin >> n; // Count number of primes int count = 0; for(int k = 1; k <= n; k++) if (isprime(k)) count++; // Compute and print out percentage double p = count/double(n) * 100.0; cout << p << "% of the first " << n << " integers are prime!" << endl; return 0; } /*********************************** ** isprime(k) ***********************************/ bool isprime(int k) { // take care of special case k is 1 if (k == 1) return false; // search for divisors in [2,k-1] for(int i = 2; i < k; i++) if (k % i == 0) return false; // no divisors were found, k's prime! return true; }