C语言求素数代码

Python07

C语言求素数代码,第1张

方法有2个:

1、判断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

}

2、判断n是否能被2~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

扩展资料:

C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。因此,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。

判断语句(选择结构):

if 语句:“如果”语句;if—else 语句:“若…(则)…否则…”语句;switch 语句:“切换”语句;switch—case:“切换—情况”语句。

循环语句(循环结构):

while 语句:“当…”语句;do—while 语句:“做…当…(时候)”语句;for 语句:条件语句(即“(做)…为了…”语句)。

跳转语句(循环结构:是否循环):

goto 语句:“转舵”语句,也称“跳转”语句;break 语句:“中断”(循环)语句,即结束整个循环;continue 语句:“继续”语句(结束本次循环,继续下一次循环);return 语句:“返回”语句。

需要说明的是:

1、一个C语言源程序可以由一个或多个源文件组成。

2、每个源文件可由一个或多个函数组成。

3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。

4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。

5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。(结构体、联合体、枚举型的声明的“}”后要加“ ;”。)

6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

书写规则

1、一个说明或一个语句占一行。

2、用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。

3、低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。

参考资料:百度百科-c语言

C语言-寻找素数

附代码:

#include<stdio.h>

#include<math.h>

int main()//原理:设ab=c,a<b,则有a<根号c<b。若设a恒小于根号c,则只需判断a是否为因数

{

int a, b

printf("请按从小到大输入两个素数:")

scanf_s("%d %d", &a, &b)

int n = 0,m=0,sum = 0

double i, j//i是从a到b的待筛选数,j是从2到根号i的除数,要判断j是否为i的因数

for (i = ai <= bi++)

{

m = 0

int c = int(pow(i, 0.5))

for (j = 2j <= cj++)

{

if ((i / j - int(i / j)) == 0.0)

{

m++//m是i被从2到根号i的j除了之后,商为整数,即发现j是i的因数的次数

}

}

if (m==0)

{

printf("找到素数:%d\n", int(i))

n++

sum = sum + i

}

}

printf("大于等于%d,小于等于%d的素数的个数为:%d\n", a, b, n)

printf("它们的和为:%d", sum)

return 0

}

参考代码:

int main(){

int num,m,n,d,c,priSum

printf("Enter the Range Between m,n ")

scanf("%d %d", &m,&n)

for (num = nnum <= mnum++)

{

for(d = 2d <numd++)

{

if (num % d == 0){

continue

}

}

if (d == num){

priSum += d

c++

}

}

printf("m~n之间的素数个数:%d,和 %d ",c,priSum)

return 0

}