两个线程计算不同域内的的质数

题目要求: 编写一个有两个线程的程序,第一个线程用来计算2~100000之间的质数及个数,第二个线程用来计算100000~200000之间的质数及个数。

代码如下:

public class e4_3 {
          
   

    //多线程
    static class Thread implements Runnable {
          
   
        private int start,end;

        Thread(int start, int end) {
            this.start = start;
            this.end = end;
        }

        //重写run函数
        @Override
        public void run() {
            int n = 0;
            for (int i = start; i< end; i++) {
                if (isPrimeNumber(i)) {
                    System.out.print(i + "	");
                    n++;
                    //每行输出五个质数
                    if (n % 5 == 0) {
                        System.out.print("
");
                    }
                }
            }
            System.out.println(start + "--" + end + "之间有" + n + "个质数");
        }
    }

    public static void main(String[] args) {
        new java.lang.Thread(new Thread(2, 100000), "thread1").start();
        new java.lang.Thread(new Thread(100000, 200000), "thread2").start();

    }

    //判断质数
    static boolean isPrimeNumber(int num){
        if(num == 2) return true;//2特殊处理
        if(num < 2 || num % 2 == 0) return false;//识别小于2的数和偶数
        for(int i=3; i<=Math.sqrt(num); i+=2){
            if(num % i == 0){
         
  //识别被奇数整除
                return false;
            }
        }
        return true;
    }
    //i love zhangyan
}

简单线程的应用,重点是重写run() 函数。 编辑于2018/05/30 如有疏漏或者问题,欢迎私信与我探讨,我会虚心接受教导。 cuicuitrees@gmail.com

经验分享 程序员 微信小程序 职场和发展