include[HTML_REMOVED]
int main()
{
int n;
scanf(“%d”,&n);
while(n–)
{
int a;
int b=0;
scanf(“%d”,&a);
for(int i=2;i*i<=a;i++)
{
if(a%i==0)
{
b=1;
}
}
if(b==0)
printf(“%d is prime\n”,a);
if(b==1)
printf(“%d is not prime\n”,a);
}
return 0;
}
while(n–)打掉了一个-
我想知道的是为啥i*i满足这个质数?
首先ii是为了防止超时,另外ii<=a,则i一定小于a(因为最开始i是从2开始加的),举例一个质数a=7,让7从除以i=2开始,i++,直到i<7,在i从2到6的过程中,a能除以其中任意一个数,它都不是质数
可以讲讲为啥i*i?
数据太大了,没有i*i的话会超时