求解一道c程题目!想了很久就是没找到错哪里TOT

[复制链接]
查看11 | 回复1 | 2008-10-23 21:02:42 | 显示全部楼层 |阅读模式
从键盘输入一个大于3的正整数,输出距离该数最近的素数。根据输入的数不同,此问题可能有一个答案(或者比输入的数大或者比输入的数小),也可能需要输出两个值(一个比输入的数大,一个比输入的数小,两个距离输入的数一样近)
以下是我做的,但输出就是不对,大家帮下忙吧~~感激不尽!!
#include
#include
void main()
{
int x,i,m,n;
scanf("%d",&x);
m=x-1;
n=x+1;
for(i=2;i0;i++)
{if(m%i==0)
m=m-1;continue;

if(i>sqrt(m))
break;
}
for(i=2;isqrt(n))
break;
}
if((n-x)==(x-m))
printf("%d,%d\n",m,n);
else
printf("%d\n",(x-m)0;i++) {if(m%i==0) //注意if(m%i==0) m=m-1;是一句.第二句是continue;m=m-1;continue; //继续时可能i值已到中间数了,此时应从头开始判断,故设i=2if(i>sqrt(m)) break; } 下面代码类似以下是经修改后的源代码#include #include void main() { int x,i,m,n; scanf("%d",&x); m=x-1; n=x+1; for(i=2;i0;i++) {if(m...
回复

使用道具 举报

千问 | 2008-10-23 21:02:42 | 显示全部楼层
不会C语言,用js写了个,你复制到记事本,另存成htm格式就可以用,参考下吧function calc(){
var sV = 0;
var lV = 0;
var val = parseInt(TXT.value,10);
for(var i=val-1...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行