c语言的问题 输出100以内的素数

#include <stdio.h>
#include "math.h"
#define N 101
int main(void)
{
int i,j,line,a[N];
for(i=2;i<N;i++) /*数组赋值*/
a[i]=i;
for(i=2;i<sqrt(N);i++) /*求素数*/
{
for(j=i+1;j<N;j++)
{
if(a[i]!=0 && a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}
}
for(i=2,line=0;i<N;i++) /*输出数组*/
{
if(a[i]!=0) /*数组赋值*/
{
printf("%5d",a[i]);
line++;
}
if(line==10) /*10个换行*/
{
printf("\n");
line=0;
}
}
printf("\n");
return 0;
}

for(i=2;i<sqrt(N);i++) /*求素数*/ 请问这句有什么用呢???

第1个回答  2016-09-04
如果一个数N能被2~sqrt(N)之间任何一个数整除,那么该数就不是素数,反之为素数本回答被网友采纳
第2个回答  2016-09-04
sqrt() 函数是用来求括号内数值的平方根。追问

是的。
这一句for(i=2;i<sqrt(N);i++)在整个文件起什么作用呢?

追答

自己懂但是有点表达不出来 =_=

追问

我理解你

追答

可以这样理解,这句相当于定义被除数,因为要判断的是100内的素数,所以因数最大只能为100的平方根,表达能力不强讲究理解。多读读,把数字带进去试试就能懂了。

本回答被提问者采纳
相似回答