我咋错了??
#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;
}
它
还提交了好多次,都是这样
我真服了
