c语言判断素数的函数程序

c语言判断素数的函数程序,第1张

c语言判断素数的函数程序:

经分析,以上代码使用flag的值来判断输入的n是否为素数,flag=1,n为素数;flag=0,n不是素数。完善if条件语句,第一个if,主函数中的if调用函数,需要填入一个参数,即prime(n);第二个if,是判断什么情况下flag=0,即输入的整数不为素数,即(n/i==0),余数为0,可以整除;最后返回flag的值,returnflag

但是经过运行可以知道,n=4的时候,程序判断4是素数,明显是错误的,n取0和1的时候同理,程序存在漏洞。分析得知,在定义函数的过程中,for循环条件语句,i=0,如果为负整数,另加判断条件,略)

改过来了:

#include<stdioh>

#include<mathh>

void main()

{

int isprime(int m);

int n;

scanf("%d",&n);

if(isprime(n))

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

else

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

}

int isprime(int m)

{

int i,k;

k=(int)sqrt(m);

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

if(m%i==0) break;

if(i>k)

return 1;

else

return 0;

}

int isPrime(int num) {int divisor = 3;int testLimit = num;if (num < 2)return 0;if ( num 4 )return 1;if (num % 2 == 0) return 0;while ( testLimit >= divisor ) {if ( num % divisor == 0 ) return 0;test

#include <stdioh>

#include <mathh>

int panduan (int n);

void main ()

{ int m,n;

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

scanf ("%d",&n);

printf("\n");

m=panduan (n);

if (m==1)

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

else if (m==0)

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

int panduan (int n)

{ int k,i;

if (n==0||n==1)

return (0);

else

k=sqrt(n);

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

if(n%i==0)

break;

if(i>k)

return (1);

else

return (0); }

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存