在c语言中寻找质数

C语言中求质数的方法有很多。如果是刚入门,最基本的就是根据素数的定义来判断一个数是否是素数。判断一个数n是否是质数,用一个循环,从2到n -1。如果n不可整除,那么n是素数,否则不是素数。

稍微改善一下的方法就是直接判断n/2。更高效的方法是判断根号n,判断的依据是一样的。

如何用c语言求质数? 除了2,所有的质数都是奇数,所以2是分开处理的。从3开始,对100以内的奇数逐一检查,如果是则输出,否则跳过。另一个计数变量被设置为控制换行,并且每输出五个质数就添加一个回车。代码如下:

#包含“stdio.h”

int main(int argc,char *argv[]){

int i,n,t;

公共关系

#包括

#包括

主()

{

int a,I,flag,count = 0;

for(a = 1;a = 100答

{

flag = 0;

for(I = 2;我

#include int main()

{

int i,n,k,b;

for(i=1,b = 1;i = 100我)

{

for(n = 2;n {

k = I % n;

如果(k==0)

打破;

}

扩展数据:

c语言考虑因素:

1.预编译命令不是语言语句,所以它不使用分号,也不占用运行时间。

2.在IDE中,通常有编辑器、编译器、汇编器和连接器。在这个过程中,语言水平逐渐降低。从最高的C语言到中级语言汇编语言再到低级语言机器语言,编辑器生成的文件是. C文件,编译器生成的文件是obj汇编文件,链接器生成的文件是exe文件。

3.注意返回和退出的区别。返回是结束该函数的运行,退出是结束该程序的运行。

4.定义指针时,必须对其进行初始化,否则会出现意外错误。如果找不到对应的地址赋值,就赋NULL(注意大小写)。

5.gets可以做scanf做不到的事情,即可以接受空格,puts会在末尾输出一个换行符。

C语言中求素数的算法 根据质数的性质,代码设计如下:

设计一:判断n是否能被1~n-1整除。

# includestdio.h

int main()

{

int i,n;

scanf("%d ",n);

for(I = 2;I n;我)

{

如果(n%i == 0)

打破;

}

if (i n) printf("这不是素数。");

else printf("这是一个质数。");

返回0;

}

设计二:判断n是否能被2和√ n之间的整数整除。

# includestdio.h

#包含math.h

int main()

{

int n,I;

双k;

scanf("%d ",n);

k = sqrt(n);

for(I = 2;I = k;我)

{

if(n % I = = 0)break;

}

if (i =k) printf("这不是素数。");

else printf("这是一个素数");

返回0;

}

扩展数据:

1.素数的定义是只能被1和自己整除,1不是素数。所以判断一个数是不是素数,就要判断它是否能被所有比他小的素数整除。这是一个算法。(写算法的时候,我只能写它被所有比他小的数除,导致运算速度低。)

2.如果一个素数大于根号n,并且n能整除它,那么n也必须整除一个更小的素数。由此,我们可以用方法2得到一个快速的素数判断算法。

参考:百度百科-scanf

参考:百度百科-质数

相关文章

发表新评论