java借助Set完成P1304哥德巴赫猜想题
查看原帖
java借助Set完成P1304哥德巴赫猜想题
1291341
weeklyrain楼主2024/2/28 17:54

使用java的有序的Treeset纪录所有符合素数规则的素数,然后在逐个遍历,符合条件的输出,并跳出该循环

import java.util.*;

public class Main {
	    public static void main(String[] args){
	        Scanner sc = new Scanner(System.in);
	        int n = sc.nextInt();
	        Set<Integer> set = new TreeSet<Integer>();
	        for(int i=2;i<=n;i++){
	            if(check(i)){
	                set.add(i);
	            }
	        }
	        
	        int j=0;  
	        for(int i=1;i<=(n-2)/2;i++){
	            j=2*i+2;
	            int a = 0;
	            int b=0;
	            for(int m=2;m<j;m++){
	                if(check(m)&&set.contains(j-m)){
	                    a=m;
	                    b=j-m;
	                    System.out.println(j+"="+a+"+"+b);
	                    break;
	                }
	                
	            }
	           
	        }
	        
	    }
	    public static boolean check(int n){
	        int ctn=0;
	        for(int i=1;i<=n;i++){
	            if(n%i==0){
	                ctn++;       
	            }
	        }
	        return ctn==2?true:false;
	    }	
}
2024/2/28 17:54
加载中...