给定n个正整数ai,判定每个数是否是质数。
输入格式
第一行包含整数n。
接下来n行,每行包含一个正整数ai。
输出格式
共n行,其中第 i 行输出第 i 个正整数ai是否为质数,是则输出“Yes”,否则输出“No”。
数据范围
1≤n≤100 ,
1≤ai≤2∗109
输入样例:
2
2
6
输出样例:
Yes
No
#include<iostream>
using namespace std;
bool isprime(int a)
{
int i;
if(a<2)return false;//强调!!!
for(i=2;i<=a/i;i++)// i<=a/i 强调!!!
{
if(a%i==0)
{return false;
break;}
}
return true;
}
int main()
{int n;
int i;
scanf("%d",&n);
while(n--)
{
int a;
scanf("%d",&a);
bool res=isprime(a);
if(res==1)
cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
法二
#include<iostream>
#include<cstdio>
using namespace std;
bool check(int m)
{
int i;
if(m<2)return false;
for(i=2;i<=m/i;i++)
if(m%i==0)
{
return false;
break;
}
return true;
}
int main()
{
int n;
int a[100];
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
for(int i=0;i<n;i++)
if(check(a[i])==1)
printf("Yes\n");
else printf("No\n");
return 0;
}