计算素数 编写一个程序,输出2到100之间的所有素数。
时间: 2023-06-10 11:03:19 浏览: 142
好的,以下是实现该程序的 Python 代码:
```
for num in range(2, 101):
for i in range(2, num):
if num % i == 0:
break
else:
print(num)
```
这个程序使用两个 for 循环,首先从2到100枚举每一个数字 num,然后从2到 num-1 枚举每一个数字 i,如果 num 能被 i 整除,说明 num 不是素数,跳出内层循环;否则说明 num 是素数,打印出来。其中 `else:` 语句是 Python 的一种特殊语法,表示当循环正常结束时执行的代码块,这里用来输出素数。
相关问题
Java编写一个有两个线程的程序,第一个线程用来输出2到50之间的素数第二个线程用来输出51到100之间的素数
以下是一个可能的实现,主要思路是创建两个线程,分别计算2-50和51-100之间的素数,并将结果输出:
```java
public class PrimeNumberPrinter {
public static void main(String[] args) {
Thread t1 = new Thread(new PrimeNumberRunnable(2, 50));
Thread t2 = new Thread(new PrimeNumberRunnable(51, 100));
t1.start();
t2.start();
}
}
class PrimeNumberRunnable implements Runnable {
private int start;
private int end;
public PrimeNumberRunnable(int start, int end) {
this.start = start;
this.end = end;
}
@Override
public void run() {
for (int i = start; i <= end; i++) {
if (isPrime(i)) {
System.out.println(i);
}
}
}
private boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
```
注意到这里使用了一个 `PrimeNumberRunnable` 类来实现线程的逻辑,该类接收一个起始和结束值,然后在线程的 `run()` 方法中计算这个范围内的素数并输出。`isPrime()` 方法用于判断一个数字是否为素数,这里使用了比较基础的算法,即从2到该数的平方根逐个判断是否有因子。
在 `main()` 方法中,我们创建了两个线程并启动它们,分别计算 2-50 和 51-100 之间的素数。因为两个线程是并行执行的,所以它们可以同时计算并输出结果,从而提高了程序的效率。
编写一个有两个线程的程序,第一个线程用来计算2到100之间的素数的个数,第二个线程用来计算100到200之间素数的个数,最后输出结果。编写Java程序
以下是Java程序代码:
```
public class PrimeThread extends Thread {
private int startNum;
private int endNum;
private int count;
public PrimeThread(int startNum, int endNum) {
this.startNum = startNum;
this.endNum = endNum;
this.count = 0;
}
public int getCount() {
return count;
}
public void run() {
for (int i = startNum; i <= endNum; i++) {
if (isPrime(i)) {
count++;
}
}
}
private boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
public class Main {
public static void main(String[] args) {
PrimeThread thread1 = new PrimeThread(2, 100);
PrimeThread thread2 = new PrimeThread(100, 200);
thread1.start();
thread2.start();
try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
int total = thread1.getCount() + thread2.getCount();
System.out.println("Total number of prime numbers between 2 and 200: " + total);
}
}
```
上述程序定义了一个 PrimeThread 类,用于计算一个区间内的素数个数。在 Main 类中创建了两个 PrimeThread 实例,并分别计算 2 到 100,和 100 到 200 之间的素数个数。最后将两个线程计算出的素数个数相加,输出总数。
程序运行结果如下:
```
Total number of prime numbers between 2 and 200: 46
```
阅读全文