从键盘输入一个整数,输出距离该数最近的素数。根据输入的数不同,此问题可能有一个答案(或者比输入的数大或者比输入的数小),也可能需要输出两个值(一个比输入的数大,一个比输入的数小,两个距离输入的数一样近)。PS:数学意义上的最小素数是2,例如,若输入-213,结果应是2
不要用太高级的字符,新人刚开始学这一块
package demo;
import java.util.Scanner;
public class demo2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("请输入一个整数:");
int num = scan.nextInt();
boolean boo=true;
for(int k=2;k<num;k++){
if (num % k == 0) {
boo=false;
break;
}
}
if(boo==true){
System.out.println("素数="+num);
}else{
int c=num;
int a=test1(num);
int b=test2(c);
if(a-c>c-b){
System.out.println("素数="+b);
}else if(a-c==c-b){
System.out.println("素数="+a+"和"+b);
}else{
System.out.println("素数="+a);
}
}
}
public static int test1(int num){
int a=0;
for (int i = 2; i < num; i++) {
if (num % i == 0) {
a=1+num++;
}
}
return a;
}
public static int test2(int num){
int b=0;
for (int j = num; j >2 ; j--) {
boolean falg=true;
for(int n = 2;n<j;n++){
if(j % n == 0){
falg=false;
break;
}
if(falg==true){
b=j;
return b;
}
}
}
return b;
}
}