c++ 求底数(n^2/2)+1和n^2之间的素数个数[重复]

szqfcxe2  于 2023-02-20  发布在  其他
关注(0)|答案(1)|浏览(130)
    • 此问题在此处已有答案**:

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

......等等,所以我不知道这里出了什么问题。提前感谢您的帮助!

sr4lhrrt

sr4lhrrt1#

在C++中,i^2执行按位异或运算,它不用于指数,您可以将其替换为pow(i, 2)i*i

相关问题