int sushu(int x);{ int i; for(i=0;i<x;i++) { if x%i==0 break; } if i==x return 0;//是素数 else return 1;//不是素数}main(){ int n,i,sh1,sh2; sh1=0; sh2=0; i=0; scanf("d%",&n); whlie((sh1==0)&&(sh2==0)) { if (sushu(n-i)==0)&&(n-i>1) sh1=n-i; if (sushu(n+1)==0) sh2=n+1; i++; } if sh1<>0 printf("d%\n",sh1); if sh2<>0 printf("d%",sh2);}很久不写C程序了,比较粗糙,不知道有没有小问题,你试试,方法应该没错。