三质数求助!!!

我咋错了??
#include <bits/stdc++.h>

using namespace std;

// 定义一个函数来判断一个数是否为三质数
bool isThreePrime(long long n) {
// 计算该数的因子个数
int factors = 0;
for (long long i = 1; i <= sqrt(n); ++i) {
if (n % i == 0) {
factors += 2; // 因子成对出现,每出现一对加2
if (factors > 3) {
return false; // 如果因子个数大于3,直接返回false
}
}
}
if (sqrt(n) * sqrt(n) == n) {
factors -= 1; // 如果n是完全平方数,减去1,因为只算一次
}
return factors == 3; // 最后判断因子个数是否为3
}

int main() {
int T;
cin >> T; // 输入T,表示有T组测试数据

while (T--) {
    long long n;
    cin >> n;
    
    if (isThreePrime(n)) {
        cout << "YES" << endl;
    } else {
        cout << "NO" << endl;
    }
}

return 0;

}


还提交了好多次,都是这样
我真服了

1 个赞

我要思路

1 个赞

不是有嘛

1 个赞

那你也被发那么干脆

1 个赞

等下告诉你

我好像啥都没了

printf,scanf
不行的话就是死循环