c语言 离一个数最近,C语言编程:从键盘输入一个数,输出离该数最近的素数

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

sandian7i

2016.10.25

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:53%    等级:12

已帮助:6253人

#include "stdio.h"

#include "stdlib.h"

int prime(int n){

int i;

if(n>2 && !(n&1) || n<2)

return 0;

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

if(!(n%i))

return 0;

return 1;

}

int main(void){

int n,i,t;

printf("Input n(int 0

if(scanf("%d",&n),n<0){

printf("Input error, the program exits...\n");

exit(0);

}

if(n>2){

i=n+!(n&1);

while(1){

if(prime(i)){

t=i;

break;

}

i+=2;

}

i=n-!(n&1);

while(1){

if(prime(i))

break;

i-=2;

}

printf("Prime Numbers from %d to %d recently.\n",t-n>n-i ? i : t,n);

}

else

printf("Prime Numbers from 2 to %d recently.\n",n);

return 0;

}

00分享举报

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值