求解C语言编程。。。。。。。

从键盘输入一个整数,输出距离该数最近的素数。根据输入的数不同,此问题可能有一个答案(或者比输入的数大或者比输入的数小),也可能需要输出两个值(一个比输入的数大,一个比输入的数小,两个距离输入的数一样近)。PS:数学意义上的最小素数是2,例如,若输入-213,结果应是2
不要用太高级的字符,新人刚开始学这一块

1个回答

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;
}

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐