用c语言编程序,用函数求素数,调用函数是什么

用c语言编程序,用函数求素数,调用函数是什么,第1张

#include<stdioh>

#include<mathh>

int fun(int n)

{ int i;

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

{

if(n%i==0)

return 0;

}

return 1;

}void main()

{

int n;

printf("请输入一个数:\n");

scanf("%d",&n);

if(fun(n))

printf("该素数是:%d",n);

else

printf("该数不是是素数:\n");

}

//两种方法:1、暴力;2、筛选法求素数。

//第一种:暴力法,用循环从100到200的每个数判断一下,是素数就输出。

#include <iostream>

#include <cmath>

using namespace std;

bool prime(int num)

{

int max=(int)sqrt((double)num),i;

for(i=2;i<=max&&num%i;i++);

if(i>max) return 1;

else return 0;

}

int main()

{

int i;

for(i=100;i<=200&&prime(i)==0;i++);

cout<<i;

for(i++;i<=200;i++)

if(prime(i)) cout<<" "<<i;

cout<<endl;

return 0;

}

//第二种:筛选法求素数,原理:素数的倍数一定不是素数。从2开始,把它的倍数都去掉

#include <iostream>

#include <cmath>

#define max 200

using namespace std;

bool prime[max+1];

int main()

{

int mid=(int)sqrt((double)max);

prime[0]=prime[1]=1;

for(int i=2;i<=mid;i++)

for(int j=i+i;j<=max;j+=i)

prime[j]=1;

int i;

for(i=100;i<=200&&prime[i];i++);

cout<<i;

for(i++;i<=200;i++)

if(prime[i]==0) cout<<" "<<i;

cout<<endl;

return 0;

}

C语言-寻找素数

附代码:

#include<stdioh>

#include<mathh>

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 = a; i <= b; i++)

{

m = 0;

int c = int(pow(i, 05));

for (j = 2; j <= c; j++)

{

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

{

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;

}

方法有2个:

1、判断n是否能被2~√n间的整数整除

#include<stdioh>

#include<mathh>

int main()

{

int n,i;

double k;

scanf("%d", &n);

k = sqrt(n);

for (i = 2; i <= k;i++)

{

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<stdioh>

int main()

{

int i, n;

scanf("%d", &n);

for (i = 2; i < 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语言

在程序的开头加入#include<mathh>

下面是fun函数:

int fun(int mm,int b[MAX])

{

int i,mmm,n=0;

for(mmm=2;mmm<=mm;mmm++)

{

for(i=2;i<=sqrt(mmm);i++)

if(mmm%i==0) break;

if(i>sqrt(mmm))

{

b[n]=mmm;

n+=1;

}

}

return n;

}

分析:

如果mm<=1,外循环不启动,直接返回n,此时n=0

如果mm=2,外循环启动,内循环i<=sqrt(mmm)的条件不满足,不启动,内循环下面的判断条件满足,于是让b[n]=mmm,n+=1,即找到一个符合条件的素数,此时b[n]既b[0]=2,然后n+=1,表示符合条件的素数的个数加1

同样,当mm=3的时候,内循环由于条件不满足,是不会执行的,但是在内循环下面的条件判断都满足,所以会把结果保存在n和b[n]里面,这时,外循环要执行2次

当mm>3时,内循环也会启动,但是要等内循环结束之后i的值满足条件的才是素数,程序的可靠信完全可以放心

刚刚又重新分析了一遍代码,稍微改了改,没问题了

以上就是关于用c语言编程序,用函数求素数,调用函数是什么全部的内容,包括:用c语言编程序,用函数求素数,调用函数是什么、用c++程序求100到200间的全部素数有几种方法程序分别是什么、求素数的C语言程序!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10134047.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存