C++ program to calculate the square root of all prime numbers between 1 and 10,000.
Segun is a C++ programmer working for Microsoft. He is going to teach a class on C++ programming to a class of interns. Assume that Segun has written a C++ program that calculates the square root of all prime numbers between 1 and 10,000. Please generate the most optimal code that Segun could have written. Please make sure that the code is very well commented.
Creating an efficient C++ program to calculate the square root of all prime numbers between 1 and 10,000 requires careful design and implementation. Here's a well-commented code that Segun could have written for this task:
#include <iostream>
#include <cmath>
using namespace std;
// Function to check if a number is prime
bool isPrime(int num) {
if (num <= 1) return false;
if (num <= 3) return true;
if (num % 2 == 0 || num % 3 == 0) return false;
for (int i = 5; i * i <= num; i += 6) {
if (num % i == 0 || num % (i + 2) == 0) return false;
}
return true;
}
int main() {
cout << "Square roots of prime numbers between 1 and 10,000:" << endl;
for (int i = 2; i <= 10000; ++i) {
if (isPrime(i)) {
double sqrtResult = sqrt(i); // Calculate square root
// Print the prime number and its square root with precision
cout << "Prime: " << i << ", Square Root: " << fixed << sqrtResult << endl;
}
}
return 0;
}
Explanation of the code:
We include the necessary headers for input/output and mathematical operations.
The
isPrime
function checks whether a given number is prime. It uses a fast primality testing algorithm based on the fact that prime numbers greater than 3 can be expressed in the form 6k ± 1.In the
main
function, we iterate from 2 to 10,000, checking each number for primality using theisPrime
function.If a number is prime, we calculate its square root using the
sqrt
function and print both the prime number and its square root with fixed precision.
This code efficiently calculates the square root of all prime numbers between 1 and 10,000, ensuring that the code is well-commented to make it understandable for Segun's class of interns.
Please show the output of running the program after it has been compiled.
I'm unable to execute code directly, but I can simulate the expected output for you. When you compile and run the program, the output should look something like this:
Square roots of prime numbers between 1 and 10,000:
Prime: 2, Square Root: 1.414214
Prime: 3, Square Root: 1.732051
Prime: 5, Square Root: 2.236068
Prime: 7, Square Root: 2.645751
Prime: 11, Square Root: 3.316625
Prime: 13, Square Root: 3.605551
Prime: 17, Square Root: 4.123105
Prime: 19, Square Root: 4.358899
Prime: 23, Square Root: 4.795832
Prime: 29, Square Root: 5.385165
Prime: 31, Square Root: 5.567764
Prime: 37, Square Root: 6.082763
Prime: 41, Square Root: 6.403124
Prime: 43, Square Root: 6.557439
Prime: 47, Square Root: 6.855655
Prime: 53, Square Root: 7.280110
Prime: 59, Square Root: 7.681146
Prime: 61, Square Root: 7.810250
Prime: 67, Square Root: 8.185353
Prime: 71, Square Root: 8.426150
Prime: 73, Square Root: 8.544004
Prime: 79, Square Root: 8.888194
Prime: 83, Square Root: 9.110434
Prime: 89, Square Root: 9.433981
Prime: 97, Square Root: 9.848858
...
The program calculates and prints the square roots of prime numbers between 1 and 10,000, displaying both the prime number and its square root with fixed precision.