c语言编程:设计一个函数用于判断一个数是否为素数,如果是素数返回1,否则返回0。

如题所述

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

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

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<stdio.h>

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;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-08
#include<math.h>
int isprime(int n)
{int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)return 0;
return 1;
}
第2个回答  推荐于2017-12-15
#include<stdio.h>
#include<math.h>
int Isprime(unsigned int Num)
{
unsigned int m,i,k;
k=sqrt(Num);
for(i=2;i<=k;i++)
if(Num%i==0)
return 0;
return 1 ;
}

返回1 表示是素数
返回0 就不是
算法: 判断 2 到 该数的开方都不能除断,则为素数。本回答被提问者采纳
相似回答