素数就是能被1和他本身整除的数~!
#include<stdio.h> #include<math.h>
int prime(long n) { int flag; long i; if(n==1) flag=0; else for(i=2;i<=sqrt(n);i++) if(n%i==0) { flag=0; break; } return flag; }
void main( ) { long n,m,si,ti,i,decrease,increase; scanf("%ld",&n); while(n!=-1) { if(prime(n)) printf("%ld是素数!\n",n); else { decrease=increase=0; m=n-1; while(!prime(m)&&m>=2) { m--; decrease++; } si=m; m=n+1; while(!prime(m)) { m++; increase++; } ti=m; if(decrease>increase) printf("%ld不是素数,离它最近的素数是%ld!\n",n,ti); else if(decrease==increase) printf("%d不是素数,离它最近的素数有两个,是%ld,%ld!\n",n,si,ti); else printf("%ld不是素数,离它最近的素数是%ld!\n",n,si);
} scanf("%ld",&n); } } 程序以输入-1结束.