为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
慕前端6184863 2017-11-12 09:36:42
#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);}(为什么输出的不管是素数还是偶数都不是素数。。。)
查看完整描述

2 回答

已采纳
?
慕用4063026

TA贡献195条经验 获得超115个赞

你的两个函数中判断语句都有问题,用你的修改了一下,好理解一点
#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都可以
    }
}


查看完整回答
2 反对 回复 2017-11-13
  • 慕前端6184863
    慕前端6184863
    可以问一下 { if(x%i==0) return 0; //返回假,也就是0 else return 1; //返回真,1非0都可以 } 这个return语句的返回值是什么意思么?初学c语言,有点不太懂return语句
  • 慕前端6184863
    慕前端6184863
    我把你的程序在我的c编译器上运行 得到Control may reach end of non-void function
  • 慕用4063026
    慕用4063026
    返回非0为真,用在if中可以用来判断是否执行if中的句子
点击展开后面3
?
风中打伞的小孩

TA贡献73条经验 获得超20个赞

一个简单的:

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


查看完整回答
反对 回复 2017-11-12
  • 2 回答
  • 1 关注
  • 1791 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信