100到200 C语言实现的素数求解

讲解两种算法,其实是一种,只不过第二种在第一种的的方法优化了一点:


第一种:直接取100到200之间的奇数,因为偶数肯定不是素数,然后对每个数用取余数的方法判断是不是素数,最后再判断一下出来的数是否和自身相等,相等即是素数。

代码:

# include

# include

int主要()

{

int数,num1, num2=0;

(num1=101;num1 & lt;=200;num1 +=2)//偶数不是素数,直接用奇数。

{

(num2=2;num2 & lt;=num1;num2 + +)

{

如果(num1 % num2==0)

打破;

}

如果(num2==num1)//因为是素数的话,只有1和自身能除过。

{

printf (“% d“, num1);

+ +,

}

}

printf (“\ ncount=% d",计数),

系统(“pause");

返回0;

}


第二种:用到了平方根的办法来减少需要判断的数,

原因是因为

 C语言实现100年到200年的素数求解

用到这个方法,同时也将较为抽象的判断素数方法变为引入一个参数来判断,更加清楚。

代码:

//打印100到200的素数(平方根优化法)

# include & lt; stdio.h>

# include & lt; stdlib.h>

# include & lt; math.h>

int主要()

{

int i t, k,数=0;

int国旗=0;//仅仅是判断是合数还是素数引入的一个参数

(k=100;k & lt;=200;k + +)

{

t=sqrt (k);

(i=2;我& lt;=t;我+ +)

{

如果(k % i==0)//判断语句你特么给我写上“==?别在犯错了!

{

标志=1;

打破;

}

}

如果(标志==0)

{

printf (“% d \ n", k);

+ +,

}

标志=0;//每次循环结束,参数要归零,不然后面都是1 .

}

printf (“=% d"计数,计数),

系统(“pause");

返回0;

}


100到200 C语言实现的素数求解