【循环题】
for(int i = 2; i * i <= x; i++) // 然后内循环 3*4=12,那么4*3=12就少做一组 i*i <=x
while(N--) // 用n--代替for(int i=1;i<=N;i++)
题目描述
一个大于 1
的自然数,如果除了 1
和它自身外,不能被其他自然数整除则称该数为质数。
例如 7
就是一个质数,因为它只能被 1
和 7
整除。
现在,给定你 N
个大于 1
的自然数,请你依次判断这些数是否是质数。
输入格式
第一行包含整数 N
,表示共有 N
个测试数据。
接下来 N
行,每行包含一个自然数 X
。
输出格式
每个测试用例输出一个结果,每个结果占一行。
如果测试数据是质数,则输出 X is prime,其中 X
是测试数据。
如果测试数据不是质数,则输出 X is not prime,其中 X
是测试数据。
数据范围
1≤N≤100
,
1<X≤107
输入样例:
3
8
51
7
输出样例:
8 is not prime
51 is not prime
7 is prime
C++ 代码
#include <iostream>
using namespace std;
int main(){
int N,x;
cin >> N;
while(N--){
cin >> x;
bool zhishu = true;
for(int i = 2; i * i <= x; i++){
if(x % i == 0) zhishu = false;
}