C语言,自己写函数,判断一个数是不是素数,求改正哪错了

C语言,自己写函数,判断一个数是不是素数,求改正哪错了,第1张

int prime(int x)

{

 int i,k;

 

 k=sqrt(x);//这个k的赋值太复杂了 为了一个返回值还要算平方根

 

 for(i=2; i<=x; i++)//这里判断素数应该是除了1和他本身 所以这里应该是i<x

 {

  if(x%i!=0) //当i==x的时候这个条件必然成立

  {

   break;//break之后跳出循环 然后返回值呢? 这里可以直接return不是素数了 因为已经判断出有一个既不是1也不是他本身的因数了

  }

  else

  {

   return k;

  }

 }

 

 //缺少返回值

}

#include

"stdioh"

#include

"mathh"//判断一个整数是否为素数

bool

prime(int

x)

{

int

i;

for(i=2;i<=

sqrt(x);i++)

{

if(x%i==0)

return

false;

}

return

true;

} //判断一个整数(1位或多位)是否每一位都是素数

bool

allPrime(int

a)

{

if(prime(a%10))

//如果个位是素数

{

a=a/10;

return

allPrime(a);

}

else

return

false;

}//

打印出1-5000内满足题意的素数

void

printPrime()

{

int

i;

int

a=0;

for(

i=11;i<5000;)

//

1-9

不用再判断了,只有一位。10和5000很明显也不用去判断了,不是素数

{

if(prime(i))

//

如果i是素数,判断个位是不是素数,如果个位不是,不满足第二个条件

{

if(prime(i%10))

//判断个位

{

a=i/10

;

//a就是去掉个位后的数

if(prime(a))

//判断a

是否是素数,如果是,再判断a每一位是否是素数

{

if(allPrime(a))

printf("%d\n",&i);

} }

}

i+=2;

}

}int

main()

{

printPrime();

}

#include&lt;stdioh&gt;

void main()

{

int a,c;

int isSus(int n);/函数声明/

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

scanf("%d",&a);

c=isSus(a);/函数调用/

printf("%d",c);

printf("\n");

}

int isSus(int n)/函数定义/

{

int j,t;

for(j=2;j&lt;n;j++)

if(n%j==0)

{

t=0;

break;

}

else

t=1;

return t;

}

扩展资料:

做c/c++编程的对#include指令都不会陌生,绝大多数人也都知道如何使用,但我相信仍有人对此是一知半解的,

C:

#include&lt;stdioh&gt;

C++:

#include&lt;iostream&gt;

表示包含C/C++标准输入输出头文件。包含指令不仅仅限于h头文件,可以包含任何编译器能识别的C/C++代码文件,包括c、hpp、cpp、hxx、cxx等,甚至txt、abc等等都可以。

预处理器发现#include指令后,就会寻找指令后面&lt;&gt;中的文件名,并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源代码文件中的#include指令,就像你把被包含文件中的全部内容键入到源文件中的这个位置一样。

include()语句包含并运行指定文件。

以下文档也适用于require()。这两种结构除了在如何处理失败之外完全一样。include()产生一个警告而require()则导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面就用require()。

include()就不是这样,脚本会继续运行。同时也要确认设置了合适的include_path。注意在php 435之前,包含文件中的语法错误不会导致程序停止,但从此版本之后会。

寻找包含文件的顺序先是在当前工作目录的相对的include_path下寻找,然后是当前运行脚本所在目录相对的include_path下寻找。例如include_path是,

当前工作目录是/>

当一个文件被包含时,其中所包含的代码继承了include所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。

例子16-5基本的include()例子

varsphp&lt;php$color='green';$fruit='apple';&gt;testphp&lt;

phpecho"A$color$fruit";//Ainclude'varsphp';echo"A$color$fruit";//A green apple&gt;

如果include出现于调用文件中的一个函数里,则被调用的文件中所包含的所有代码将表现得如同它们是在该函数内部定义的一样。所以它将遵循该函数的变量范围。

参考资料:

百度百科——include(计算机专业术语)

源程序代码以及算法解释如下:

#define _CRT_SECURE_NO_WARNINGS

#include<stdioh>

int Func(int m)//判断函数

{

int n = 2;

while (n <= m && (m%n))//判断是否能被其他数整除

n++;

if (m == n)

return 1;

else

return 0;

}

int main()

{

int M_num;//定义变量

printf("请输入需要判断的数:\n");//文字提示

scanf("%i", &M_num);//循环输入数组元素

int i = Func(M_num);//判断是否是素数

if (i == 1)//输出结果

printf("输入的数是素数");

if (i == 0)

printf("输入的数不是素数");

printf("\n");

return 0;

}

程序运行结果如下:

扩展资料:

输出1-100之间的所有素数程序如下:

#include<stdioh>

int PrimeNumer(int x) //定义一个函数判断

{

assert(x > 0);  //判断

int i;   //被除数

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

{

if (x%i == 0)

{

return 0;            //表示正常终止

}

}

return 1;       //只是给主调函数一个标志,说明他的执行过程中遇到异常情况。 然后就返回主调函数来处理,继续执行。 

}

int main()

{

int i,a;

int count = 0;

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

{

if (PrimeNumer(i))                           //调用函数来判断

{

count++;                             //加入了一个计数器

printf("%d\n", i);

}

}

printf("素数出现的次数%d", count);

system("pause");

return 0;

}

以上就是关于C语言,自己写函数,判断一个数是不是素数,求改正哪错了全部的内容,包括:C语言,自己写函数,判断一个数是不是素数,求改正哪错了、用C语言编写自定义函数prime(int x),判断x是否为素数。、用C语言编程:编写一函数判别某一数是否为素数,若是,返回值为1;否则,返回值为0等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/10143783.html

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

发表评论

登录后才能评论

评论列表(0条)

保存