两个线程计算不同域内的的质数
题目要求: 编写一个有两个线程的程序,第一个线程用来计算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