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;

乗算の*が欠落しており、^ の代わりに 2 回乗算するか、 pow 関数を使用する必要があります

于 2012-07-22T17:12:58.487 に答える
6

n*nの代わりに正方形の使用を取得するにはn^2^ビットごとの xor 演算子です。

于 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 に答える