day06_5_实现一个函数,判断一个数是不是素数(试除法改进*2)

//实现一个函数,判断一个数是不是素数
#include<stdio.h>
#include<math.h>
int sushu(int i)//是素数返回1,不是素数返回0
{
    int j=2;
    
    if(i==1)
        return 0;
    if(i==2)
        return 1;
    
    for(j=3;j<sqrt(i);j+=2)//试除法改进*2
    {
        if(i%j==0)
            return 0;        
    }
    return 1;
}

int main()
{
    int in,out;
    printf("判断一个数是不是素数,请输入一个数:>");
    scanf("%d",&in);
    out=sushu(in);

    if(out)
        printf("%d是素数",in);
    else
        printf("%d不是素数",in);   
    return 0;    
}


//错误案例:判断素数的定义错误
// //实现一个函数,判断一个数是不是素数
// #include<stdio.h>

// int sushu(int i)
// {
//     if(i>7)
//         {
//         if (i%2!=0  &&  i%3!=0  &&  i%5!=0  &&  i%7!=0)
//             //一个数同时对2 3 5 7取余不为0则这个数为素数
//             return 1;
//         else
//             return 0;
//         }
//     else if(i==2||i==5||i==7)
//         return 1;
//     else
//         return 0;
// }

// int main()
// {
//     int in,out;
//     printf("判断一个数是不是素数,请输入一个数:>");
//     scanf("%d",&in);
//     out=sushu(in);

//     if(out)
//         printf("%d是素数",in);
//     else
//         printf("%d不是素数",in);   
//     return 0;    
// }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值