public static boolean isPrime (int num) {
int sqrt = (int) Math.sqrt (num);
for (int i = 2 ; i <= sqrt ; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
接着创建两个线程,我这里用的是匿名内部类创建子类对象,重写run方法,让run方法执行判断素数的结果,如果是素数打印出来,定义一个sum累加和记录10-20的素数和。第二个线程也是一样的。
public class threadDemo12 extends Thread {
public static boolean isPrime (int num) {
int sqrt = (int) Math.sqrt (num);
for (int i = 2 ; i <= sqrt ; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
public static void main (String[] args) {
Thread t1 = new Thread () {
@Override
public void run () {
int sum = 0;
for (int k = 10 ; k <= 20 ; k++) {
if (isPrime (k)) {
sum += k;
System.out.print (k + " ");
}
}
System.out.println ("10-20的素数和"+sum);
}
};
Thread t2 = new Thread () {
@Override
public void run () {
int sum = 0;
for (int k = 1000 ; k <= 2000 ; k++) {
if (isPrime (k)) {
sum += k;
System.out.print (k + " ");
}
}
System.out.println ("1000-2000的素数和"+sum);
}
};
t1.start ();
t2.start ();
}
}
执行结果: 



