从键盘输入一个大于3的正整数,输出距离该数最近的素数。用c语言编程

2025-03-02 02:41:46
推荐回答(2个)
回答1:

#include
#include
void main(void)
{
int i,j,t,m;
int a,a0,a1;
scanf("%d",&a);

m=sqrt(a);
for(i=2;i<=m;i++)
if(a%i==0)
break;
if(i>m)
{
printf("%d\n",a);
return;
}

t=a;
while(1)
{
m=sqrt(t)+1;
for(i=2;i<=m;i++)
if(t%i==0)
break;
if(i>m)
{
a0=t;
break;
}
t--;
}

t=a;
while(1)
{
m=sqrt(t)+1;
for(i=2;i<=m;i++)
if(t%i==0)
break;
if(i>m)
{
a1=t;
break;
}
t++;
}
if(a1-a printf("%d\n",a1);
else if(a1-a>a-a0)
printf("%d\n",a0);
else printf("%d %d\n",a0,a1);
}

回答2:

#include
#include
int main(void)
{
int a,count,i,x,y;
scanf("%d",&a);
count=0;
for(x=a;count<1;x++) //找到就停止循环
{
y=sqrt(x);
for(i=2;i<=y;i++)
if(x%i==0)
break;
if(i>y)
{
printf("%6d",x);
count++;
}
}
getchar(); //使页面停留
getchar();
return 0;
}