用一个函数去判断输入的一个整数是不是素数

#include<stdio.h>

#include<math.h>

int main()

{

    int prime_number(int x);

    int x,b;

    printf("Please enter a integer:");

    scanf("%d",&x);

    b=prime_number(x);

    if(b==1)

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

    else

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

    return 0;

}

int prime_number(int x)

{

    int i,j=0,k;

    k=sqrt(x);

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

    {

        if(x%i==0)  break;

        if(i>=k+1)  j=1;

    }

    return (j);

}

(为什么输出的不管是素数还是偶数都不是素数。。。)

慕前端6184863
浏览 1836回答 2
2回答

慕用4063026

你的两个函数中判断语句都有问题,用你的修改了一下,好理解一点 #include<stdio.h> #include<math.h> int main() {     int prime_number(int x);     int x,b;     printf("Please enter a integer:");     scanf("%d",&x);     if(b=prime_number(x))    //判断是否为真,也就是1,非0         printf("\n%d is a prime number\n",x);     else         printf("%d is not a prime number\n",x);     return 0; } int prime_number(int x) {     int i,k;     k=sqrt(x);     for(i=2;i<=k;i++)     {         if(x%i==0)  return 0;    //返回假,也就是0         else        return 1;    //返回真,1非0都可以     } }

风中打伞的小孩

一个简单的:int isSushu(int b) { if(b==2) return 1;//2 if(b==3) return 1;//3 if(b%2==0) return 0;//偶数直接false for(int i=3;i<b;i=i+2) { if(b%i==0) return 0; } return 1; }
打开App,查看更多内容
随时随地看视频慕课网APP