我目前正在学习《C++ Without Fear,第三版》。我对这段代码有点困惑,我明白if
语句是如何用来判断是否n
能被整除的i
。我只是不明白while
循环的意义是什么。
当然,你也可以不使用它来编写代码,如果循环if
返回余数,那么它就是一个质数,否则它就不是质数。
#include <iostream>
#include <cmath>
using namespace std;
int main(){
int n = 0; // Number to test for prime-ness
int i = 2; // Loop counter
bool is_prime = true; // Boolean flag...
// Assume true for now
// Get a number from the keyboard
cout << "Enter a number and press ENTER: ";
cin >> n;
// Test for prime by checking for divisibility
// by all whole numbers from 2 to sqrt(n).
while (i <= sqrt(n)){
if (n % i == 0) { // If i divides n,
is_prime = false; // n is not prime
break; // BREAK OUT OF LOOP NOW!
}
++i; // Add 1 to i.
}
// Print results
if (is_prime) {
cout << "Number is prime." << endl;
} else {
cout << "Number is not prime." << endl;
}
return 0;
}
我不明白,请帮帮我。