给定 n 个正整数 ai,判定每个数是否是质数。
输入格式第一行包含整数 n。
接下来 n 行,每行包含一个正整数 ai。
输出格式共 n 行,其中第 i 行输出第 i 个正整数 ai 是否为质数,是则输出 Yes,否则输出 No。
数据范围1 ≤ n ≤ 100,
1 ≤ ai ≤ 2^31 − 1
#includeusing namespace std; // O( nlog(n) ) // 不建议使用sqrt(x),会很慢;不建议使用i * i <= x, 当数据为long long时会溢出 bool is_prime(int x) { if (x < 2) return false; for (int i = 2; i <= x / i; i++) { if (x % i == 0) return false; } return true; } int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { int x; scanf("%d", &x); if (is_prime(x)) printf("Yesn"); else printf("Non"); } return 0; } // 质数O( nlog(n) ), 此算法数组下标越界,将check改为函数可解决 // const int N = 1000010; // bool check[N]; // int main() { // int n; // scanf("%d", &n); // check[0] = 1, check[1] = 1; // for (int i = 2; i * i <= N; i++) { // if (!check[i]) { // for (int j = 2; j * i <= N; j++) check[i * j] = 1; // } // } // while (n--) { // int x; // scanf("%d", &x); // if (!check[x]) printf("Yesn"); // else printf("Non"); // } // return 0; // }



