`

用线程来解决性能问题(打印10000000以内的素数)

阅读更多
引用

package com.java.day01;

import java.util.ArrayList;
import java.util.List;

public class Zhishu {

	public static void zhiShu(int end, int fen) {
		class Run implements Runnable {
			int start;
			int end;
			public void run() {
				outer : for (int i = start; i <= end; i++) {
					for (int j = 2; j < Math.sqrt(i) + 1; j++) {//减少循环次数;
						if (i % j == 0) {
							continue outer;
						}
					}
					System.out.println(i);
				}
			}
		}
		// 把得到的素数,分N个放到list集合当中然后循环打印;
		List<Run> list = new ArrayList<Run>();
		int size = end / fen;
		for (int i = 0; i < fen; i++) {
			int e = i * size;
			Run r = new Run();
			r.start = e;
			if (i == 0)
				r.start = 2;
			r.end = e + size - 1;
			if (i == fen - 1)
				r.end = end;
			list.add(r);
		}
		for (Run r : list) {
			new Thread(r).start();
		}

	}
	public static void main(String[] args) {
		zhiShu(10000000, 20);
	}

}



分享到:
评论

相关推荐

    1亿以内的质数(共5761455个数).txt_1亿以内素数的个数

    ### 1亿以内的质数知识点详解 #### 一、质数定义与性质 **质数**(或称为素数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的数。质数是数论中的基本概念之一,在密码学、计算机科学以及其他数学领域...

    50000000(五千万)以内质数(素数)3001134(约三百万)个.zip

    标题 "50000000(五千万)以内质数(素数)3001134(约三百万)个.zip" 暗示了这个压缩包包含了一个文本文件,列出了从1到50,000,000之间所有约300万个质数。描述中的 "普通pc演算(i7处理器)" 表明这些质数是通过一台搭载...

    100万以内的素数表

    - **编程竞赛**:在算法竞赛中,预处理素数表可以极大地提高某些问题的解决效率。 - **教育工具**:素数表也可以作为教育工具,帮助学生理解素数的概念及其重要性。 #### 示例素数表 为了更直观地展示100万以内的...

    wpf多线程显示100以内素数

    在这个名为“wpf多线程显示100以内素数”的示例中,我们将探讨如何在WPF应用中利用多线程技术来计算并显示100以内的素数。 首先,素数是指大于1且只有1和其本身两个正因数的自然数。计算素数的方法有很多,如试除法...

    Java:打印出100以内的质数

    在这个任务中,我们将探讨如何使用Java来打印出100以内的所有质数。 首先,我们需要了解找到质数的基本算法。一种常见的方法是“埃拉托斯特尼筛法”(Sieve of Eratosthenes),但在这里,由于范围较小(1到100),...

    java打印100以内的素数

    Java打印100以内的素数是一个常见的编程练习,它涉及到基础的算法设计和Java编程技巧。素数是大于1的自然数,除了1和它自身外,不能被其他自然数整除的数。在Java中,我们可以通过一系列步骤来实现这个功能。 首先...

    从1到10000000的质数表.txt

    ### 从1到10000000的质数表知识点解析 #### 一、质数定义与性质 **定义:** - **质数(Prime Number)**:指在一个大于1的自然数中,除了1和它本身以外不再有其他因数的数。 **性质:** 1. **唯一性**:每个大于1...

    使用 Matlab 计算 10000000 以内数的素数。由于 for 循环很慢,需要算法优化。.zip

    这里我们将探讨如何利用 MATLAB 的算法优化来高效地找出10000000以内的所有素数。 首先,我们可以采用埃拉托斯特尼筛法(Sieve of Eratosthenes),这是一种经典的算法,用于找出指定范围内的所有素数。该算法的...

    多线程查找素数

    标题中的“多线程查找素数”涉及到计算机编程中的一项任务,即利用多线程技术来寻找素数。素数是大于1且只有1和自身两个正因数的自然数,例如2、3、5、7等。在计算密集型任务中,如大规模素数搜索,多线程能够有效...

    用C#编的质数线程

    本项目"用C#编的质数线程"显然是利用多线程技术来查找并处理质数。质数是大于1且只有两个正因数(1和自身)的自然数,它在数论中占有重要地位,也被广泛应用于加密算法中。 首先,我们要理解如何在C#中创建和管理...

    1000以内质数的输出

    1000以内的质数:&quot;+str ; }"&gt;public class Test public static void main String [] args { String str &quot;&quot;; for int i 1; i &lt; 1000; i++ { for a 2; a &lt; int i 2; a++ { if i % a 0 { ...

    用python求100以内质数

    用python求100以内质数

    用python编写代码找出1000以内的素数和双素数

    用python编写代码找出1000以内的素数和双素数 一、素数 素数(prime number)又称质数,有无限个。除了1和它本身外,不能被其他自然数整除。换句话说就是该数除了1和它本身以外不再有其他的因数的数。 注意:最小的...

    java实现打印素数/质数程序

    对于每个数字i,我们用一个布尔变量isPrime来记录它是否为素数。内层循环从2到i的平方根,检查是否有因子。如果找到因子,isPrime设为false并跳出内层循环。最后,如果isPrime保持为true,说明i是素数,我们将其打印...

    java代码-使用java解决输出1000以内最大的n个质数及其和。输出形式“质数1+质数2+...+质数n=的源代码

    java代码-使用java解决输出1000以内最大的n个质数及其和。输出形式“质数1+质数2+...+质数n=的源代码 ——学习参考资料:仅用于个人学习使用!

    打印一个数以内的所有质数

    这是一个提示用户输入数据,然后打印出来我们输入数据以内的所有质数

    java 打印出100以内的素数

    根据给定的文件信息,我们可以总结出以下关于“Java打印出100以内的素数”的相关知识点: ### 一、素数的概念 在数学领域,一个大于1的自然数,除了1和它本身以外不再有其他因数,这样的数被称为素数(Prime ...

    多线程求连续质数和的完全幂

    标题中的“多线程求连续质数和的完全幂”是指使用多线程技术来解决一个数学问题,即寻找连续质数序列的和,并判断这个和是否为某个整数的完全平方。这个问题融合了计算机科学的并发处理概念与数学的质数与完全平方数...

    打印出100以内的质数Java

    Java作为一种广泛使用的编程语言,提供了多种方法来找出100以内的所有质数。以下将详细介绍如何使用Java实现这个功能,并探讨相关的编程概念。 1. **基础概念** - **循环**:在Java中,`for`循环是常用的结构,...

    用Python编写的示例代码-找出1000以内的素数

    在编程领域,特别是使用Python语言时,经常需要处理数学问题,比如寻找素数。素数是只有1和其本身两个正因数的自然数。在这个示例中,我们有两个核心函数,`is_prime` 和 `find_primes`,它们协同工作以找出1000以内...

Global site tag (gtag.js) - Google Analytics