c语言怎么求素数?

Python020

c语言怎么求素数?,第1张

除2以外,素数皆为奇数,所以对2单独处理,从3开始,将100以内的奇数逐一进行素数考察,是则输出,不是则跳过。另设一计数变量控制换行,每输出5个素数添加一个回车。代码如下:

#include "stdio.h"

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

int i,n,t

pr

#include

#include

main()

{

int a,i,flag,count=0

for(a=1a <=100a++)

{

flag=0

for(i=2i

#include int main()

{

int i,n,k,b

for(i=1,b=1i<=100i++)

{

for(n=2n {

k=i%n

if(k==0)

break

}

扩展资料:

C语言注意事项:

1、预编译命令不是语言语句,不使用分号,不占用运行时间。

2、在IDE中通常包括编辑器,编译器,汇编器和链接器,在这个过程中是语言等级逐级降低的过程,从最高级的c语言到中级语言汇编语言再到低级语言机器语言,编辑器生成文件为.c文件,编译器生成的文件为obj汇编器生成的文件为.0文件,链接器生成的是exe文件。

3、注意 return和exit的区别, return是让本函数运行结束,而exit是让本程序运行结束。

4、在指针定义时,一定要进行初始化,否则就会出现意想不到的错误,如果不能找到对应地址赋值,那就赋给NULL(注意大写)。

5、gets可以 scanf办成办不成的事,就是可以接受空格,puts在最后会输出一个换行。

根据素数的性质,代码设计如下:

设计一:判断n是否能被1~n-1整除,不能整除为素数

#include<stdio.h>

int main()

{

int i, n

scanf("%d", &n)

for (i = 2i <n i++)

{

if (n%i == 0)

break

}

if (i <n) printf("This is not a prime.")

else printf("This is a prime.")

return 0

}

设计二:判断n是否能被2~√n间的整数整除,不能整除为素数

#include<stdio.h>

#include<math.h>

int main()

{

int n,i

double k

scanf("%d", &n)

k = sqrt(n)

for (i = 2i <= ki++)

{

if (n%i == 0) break

}

if (i <=k) printf("This is not a prime.")

else printf("This is a prime")

return 0

}

扩展资料:

1.素数的定义是只能被1和他本身整除,1不是素数.因此要判断一个数是否为素数.就要判断它能不能被比他小的所有素数整除,这是一个算法.(写到算法时,我只能写出用它除以比他小的所有数,造成运算速度低下)

2.如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。由此可以得到一个法2较快的素数判断算法

参考资料:百度百科-scanf

参考资料:百度百科-质数