0

我对 c++ 很陌生,但我正在尝试建立一个非常简单的 c++ 项目。到目前为止,您可以在下面找到代码。但我遇到的问题是数学函数p = n^2-8n+7;。有什么建议可以改进吗?

#include <iostream>
#include <stdio.h> 
using namespace std;

int main() {

/* Variable Declaration */
int p,n,i;

for (n=0; n<100; n++) {

/* Math Function */
p = n^2-8n+7;

/* Check if prime */
for (i=2; i<p; i++) { 
    if (!(p%i)) break;
    else cout << "(" << n << "," << p << ");" << endl;
}

}

/* Ready */
printf("\n\n\a");
system("pause");
}
4

3 回答 3

8

你需要改变

 n^2-8n+7;

p = n * n - 8 *n + 7;

您缺少用于乘法的*,并且您需要乘以两次或使用 pow 函数而不是 ^

于 2012-07-22T17:12:58.487 回答
6

获得方形使用n*n而不是n^2. ^是按位异或运算符。

于 2012-07-22T17:07:15.650 回答
5

运算符 ^ 不等于效力,而是二元运算符 'XOR'。

对于 n^2 使用 (n*n) 或者,对于更高的效力,预制的“pow”功能,这里描述:http ://www.cplusplus.com/reference/clibrary/cmath/pow/

对于您的示例,这将是 pow(n, 2); 8n 也不起作用,你需要把它完全写成'8 * n'。

于 2012-07-22T17:09:34.650 回答