简单的数学函数不起作用

时间:2012-07-22 17:06:17

标签: c++ math

我对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");
}

3 个答案:

答案 0 :(得分:8)

您需要更改

 n^2-8n+7;

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

你错过了 * 的乘法,而不是^你需要多次两次或使用pow函数

答案 1 :(得分:6)

要使用n*n代替n^2^是按位xor运算符。

答案 2 :(得分:5)

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

对于n ^ 2,要么使用(n * n),要么使用更高的效力,使用预制的'pow'功能,如下所述:http://www.cplusplus.com/reference/clibrary/cmath/pow/

对于你的例子,那将是pow(n,2); 8n也不起作用,你需要将其完全写成'8 * n'。