zoukankan      html  css  js  c++  java
  • java高效判断素数

    java高效判断素数

    package solution;
    
    public class Prime {
         
        // 偶数可以由有两个素数相加得到, 一个偶数可能有多个这样的两个素数, 请寻找到 这样两个素数,让这两个素数的差是其中最小的。
        public static void main(String[] args) {
             
             int N[]={ 22,486284};
             //22  3 19, 5 17  11 11 
             int p= (int)Math.sqrt(986284);
             System.out.println( p+"  --- ---   ----");
            
            
             for(int j=0;j<N.length;j++)
             {
                 
                 int sum=0;
                 int mark=0;
                 
                for(int i=1;i<N[j];i++){
                    
                    if(IsPrime(i) && IsPrime(N[j]-i) ){
                        
                         if(sum==0){
                             sum=N[j]-i-i;
                             mark=i;
                             //System.out.println(mark+"  "+""+(N[j]-mark));
                         }else if((N[j]-i-i)<sum) {
                             sum=N[j]-i-i;
                             mark=i;
                             //System.out.println(mark+"  "+""+(N[j]-mark));
                             if(sum<=0){
                                 break;
                             }
                         }
                    }
                    
                } 
                System.out.println(mark+"  "+""+(N[j]-mark));
                 
             }
     
        }
        
          // 素数 函数
          public static boolean IsPrime(int n){
               
                for (int i=2;i<=(int)Math.sqrt(n);i++){
                    if (n%i==0) return false;
                }
                return true;
           }
    
    }
  • 相关阅读:
    设计模式学习
    rabbitMQ topic实现广播
    rabbitMQ direct实现广播
    rabbitMQ fanout 实现广播
    rabbitMQ 生产者消费者
    python select 实现IO异步
    python gevent 爬虫
    python gevent socket
    python 协程
    python 进程池
  • 原文地址:https://www.cnblogs.com/rojas/p/6845595.html
Copyright © 2011-2022 走看看