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

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

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

#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;

}

先建立一个初始的素数表,例如:100以内的素数数组,用来快速判断是否是素数对于超过100的素数,算法,用不大于根号n的素数,对n进行试除,如果都不能除尽,则为素数。

#include <stdioh>

#include <mathh>

//判断是否为素数的函数

int isPrime(int n)

{

int i=2;

while(i<=(int)sqrt(n))

{

if(n%i == 0)

return 0;  //不是素数,直接返回0

else

i++;

}

return 1;

}

int main()

{

int n;

printf("输入一个正整数: ");

scanf("%d",&n);

if(isPrime(n))

printf("%d is a prime number\n",n);

else

printf("%d is not a prime number\n",n);

return 0;

}

扩展资料;

首先,本文英文字母都表示整数,上半部B 》3N 》W,下半部B 》W 》3N。大于3的素数只有6N-1和6N+1两种形式,我们只需判定这两种数是素数还是合数即可。

命题 1 对于B=36N+1 形数而言。

若不定方程(3N)^2+N-(B-1)/36=W^2 有整数解,

则 6(3N-W)+1 是小因子数;6(3N+W)+1 是大因子数。

若不定方程 (3N)^2-N-(B-1)/36=W^2 有整数解,

则 6(3N-W)-1 是小因子数;6(3N+W)-1 是大因子数。

-质数

#include<stdioh>

int isprime(int n)

{

int i;

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

if(n%i==0)return 0;

return 1;

}

void main()

{

int n;

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

scanf("%d",&n);

if(isprime(n))

printf("%d是素数\n");

else

printf("%di不是素数\n"); }

#include <stdioh>

int prime(int a);

void main(void)

{

int InputNumber;

int ReturnNumber;

printf("Please input a number:");

scanf("%d",&InputNumber);

ReturnNumber = prime(InputNumber);

if(ReturnNumber == 0)

printf("The number is a prime\n");

else if(ReturnNumber == 1)

printf("The number is not a prime\n");

return ;

}

int prime(int a)

{

int divisor;

int remainder;

for(divisor = 2; divisor < a; divisor ++)

{

remainder = a%divisor;

if(remainder == 0 )

{

break;

}

}

if(divisor == a)

return 0;

if(divisor != a || a == 1)

return 1;

}

扩展资料:

scanf()函数用法:

输出的值只是空格前面的字符是因为scanf函数的输入格式错误,输入参数的变量前需要加&。

scanf("%s",s);改为scanf("%s",&s);

scanf的用法是:scanf("格式控制字符串",输入参数一,输入参数二);

格式控制字符串包含:格式控制说明,普通字符。

1、格式控制字符串表示输入的格式,(int型用%d,float用%f,double型用%lf)

2、普通字符:在输出数据的时候,按照原样输出的字符,如:"fahr=%d,celsius=%d\n"中的fahr=,celsius=。

3、输入的参数是变量的地址,所以要在变量前面加&。

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

原文地址: http://outofmemory.cn/langs/12187956.html

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

发表评论

登录后才能评论

评论列表(0条)

保存