从键盘输入一个整数,输出距离该数最近的素数。根据输入的数不同,此问题可能有一个答案(或者比输入的数大或者比输入的数小),也可能需要输出两个值(一个比输入的数大,一个比输入的数小,两个距离输入的数一样近)。PS:数学意义上的最小素数是2,例如,若输入-213,结果应是2
不要太高深 开头用#include int main for scanf printf 等等这几类基础的吧
其他复杂的就算了吧
#include<stdio.h>
int is(int n){
int count=0;
int i=0;
for(i=2;i<n;i++){
if (n%i==0)
count++;
}
if(n==1)
count=1;
if(count==0)
return 1;
else return 0;
}
int main(){
int n;
scanf("%d",&n);
int i=0,j=0;
if(n>1){
for(i=1;is(n+i)==0;i++);
for(j=1;is(n-j)==0;j++);
if(i==j)
printf("%d %d",n+i,n-j);
if(i>j)
printf("%d",n-j);
if(i<j)
printf("%d",n+i);}
else
printf("2\n");
return 0;
}
直接找出它两边的素数(要考虑它本身也是素数的情况),然后比较谁近就好啦。