c ++ sqrt()计算帮助

时间:2017-05-27 14:24:25

标签: c++

所以我正在从书中学习c ++((C ++ in fear fear))。并且有一个我不理解的代码。我需要知道代码是如何工作的。我的问题是在循环中,我理解它是如何工作的,但我不明白如何将i添加1。 (即使有评论)。

 #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.
         }
         ++i; // Add 1 to i.
     }
     // Print results
     if (is_prime) {
         cout << "Number is prime." << endl;
     }   
     else 
     {
         cout << "Number is not prime." << endl;
     }
     return 0;
}

1 个答案:

答案 0 :(得分:0)

i添加1只是继续测试下一次循环的 next 号码,以测试它是否划分n++i只是被调用的前缀增量运算符。 Postfix i++; 可以在这里使用同样的效果,就像i = i + 1;一样,但是因为有些情况下前缀增量比替代品更快(这里不是这种情况)除非您有特殊原因不这样做,否则始终使用前缀增量通常是一个好习惯。