- 此问题在此处已有答案**:
C++ Formula trouble [closed](1个答案)
昨天关门了。
我试图找到一个程序,它能返回$floor(n^2/2)+1$和$n^2 $之间的素数个数。
#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n)
{
for (int i = 2; i <= sqrt(n); i++)
if (n % i == 0)
return false;
return true;
}
int main() {
int cnt=0;
for(int i=3;i<=100;i++){
cnt = 0;
for(int j=(i^2/2)+1; j<(i^2); j++)
{
if(isPrime(j))
{
cnt++;
}
}
cout << i << " " << cnt << endl;
}
}
是我的准则但我
3 0
4 0
5 1
6 0
7 0
8 0
9 0
10 0
11 0
12 0
13 1
14 0
15 0
16 0
17 1
18 0
......等等,所以我不知道这里出了什么问题。提前感谢您的帮助!
1条答案
按热度按时间sr4lhrrt1#
在C++中,
i^2
执行按位异或运算,它不用于指数,您可以将其替换为pow(i, 2)
或i*i