`

java-打印不大于N的质数

 
阅读更多

public class PrimeNumber {

	/**
	 * 寻找不大于N的质数
	 */
	public static void main(String[] args) {
		int n=100;
		PrimeNumber pn=new PrimeNumber();
		pn.printPrimeNumber(n);
		System.out.println();
		pn.printPrimeNumber2(n);
	}

	public void printPrimeNumber(int n){
		int i=2;
		while(i<=n){
			if(isPrimeNumber(i)){
				System.out.print(i+",");
			}
			i++;
		}
	}
	//Solution 1
	//it's not a good solution
	public boolean isPrimeNumber(int x){
		boolean re=true;
		for(int i=2;i*i<=x;i++){
			if(x%i==0){
				re=false;
				break;
			}
		}
		return re;
	}
	
	//Solution 2
	//i--> 2 to sqrt(n)
	//delete i*2,i*3.....i*sqrt(n)
	public void printPrimeNumber2(int n){
		boolean[] a=new boolean[n+1];
		for(int i=2;i<=n;i++){
			a[i]=true;
		}
		for(int i=2;i*i<=n;i++){
			for(int j=i;j*i<=n;j++){
				a[j*i]=false;
			}
		}
		for(int i=0;i<n;i++){
			if(a[i]){
				System.out.print(i+",");
			}
		}
	}
}

1
0
分享到:
评论
1 楼 123048591 2012-01-15  
线性筛选素数

相关推荐

    java代码-输入N,输出大于N的质数

    然后,我们调用`isPrime`函数来检查每个大于N的整数,如果是质数就打印出来。注意,我们在循环中使用了`break`语句,当找到第一个非质数时退出循环,避免无限输出。 为了运行上述代码,你需要将上述两个代码段分别...

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

    在编程领域,素数或质数是指大于1且仅能被1和其本身整除的自然数。在Java中实现打印素数的程序是一项基础但重要的任务,这有助于理解和掌握循环、条件判断以及数学逻辑在编程中的应用。下面将详细解释如何通过Java...

    java实现--输出给定范围内的质数

    在编程领域,质数是指大于1且只有两个正因数(1和自身)的大于1的自然数。这里我们讨论的是如何使用Java编程语言来输出给定范围内的所有质数。给定的代码示例已经提供了一个简单的实现,我们将详细解释这个程序的...

    java打印100以内的素数

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

    打印出100以内的质数Java

    - **质数检查算法**:对于每个数字n,我们从2开始到sqrt(n)(包括sqrt(n))遍历,如果n能被其中任何数字整除,那么n不是质数。否则,它是质数。这是因为一个非质数总能找到一个小于或等于其平方根的因数。 3. **...

    判断101-200之间有多少个素数,并输出所有素数。.docx

    最后,当外层循环结束,我们打印出素数的总数`count`,通过`System.out.println("\n 素数的个数:" + count)`实现,换行符`\n`确保新行开始显示总数。 通过这个程序,我们可以得出101到200之间的素数,并计算它们的...

    java-简单练习题(含答案).doc

    如果能整除,打印k并将n更新为n/k;如果不能整除,k递增继续查找。这样不断循环直到n变为1,表示质因数分解完成。 这些Java练习题涵盖了基础的循环结构(for和while)、条件判断(if-else)、数组运算以及数学算法...

    Java输出n以内的所有素数

    在编程领域,素数是指大于1且只有两个正因数(1和自身)的大于1的自然数。在Java中,我们可以通过编写程序来找出指定范围内所有的素数。本篇文章将详细讲解如何利用Java实现这一功能,特别是通过“素数筛”算法。 ...

    java代码-1-100的素数

    反之,如果都不能整除,n就是素数。这是因为任何大于√n的因子都会有一个对应的小于√n的因子,所以只需要检查到√n即可。 以下是一个Java程序的基本框架,用于打印1到100之间的所有素数: ```java public class ...

    java代码-1到100素数

    在Java编程语言中,"1到100素数"是一个常见的编程练习,目标是编写一个程序,打印出1到100之间的所有素数。素数是指除了1和它本身以外,不能被其他正整数整除的自然数。在这个问题中,我们将探讨如何用Java实现这个...

    java代码-判断是否是质数

    在Java中,判断一个数`n`是否为质数的基本方法是遍历从2到`n-1`的所有整数,如果`n`能被其中任何一个数整除,则`n`不是质数。以下是一个简单的Java方法实现: ```java public class Main { public static boolean ...

    Java求质数的几种常用算法分析

    "Java求质数的几种常用算法分析" 本文主要介绍了Java中求质数的几种常用算法,并结合实例形式分析了三种比较常见的求质数算法原理及相关实现技巧。 一、根据质数的定义求质数 质数的定义是:只能被1或者自身整除...

    显示这两个数值之间的全部质数

    例如,用户可能输入非整数或不满足条件的值(如m大于n)。可以通过增加异常处理机制来增强程序的健壮性: ```java if (m &gt; n) { System.out.println("输入错误:第一个数应小于第二个数!"); return; } ``` ### 4...

    java代码-100里的素数

    在编程领域,素数是指大于1且只有两个正因数(1和自身)的大于1的自然数。在Java编程中,寻找一定范围内的素数是一项基础任务,这对于理解算法和数学概念非常重要。本主题围绕"java代码-100里的素数"展开,将深入...

    java 面试 经典编程题

    - **分解方法**:遍历从2开始,检查每个数是否是n的因数,如果是,将其打印并更新n为n/k,继续查找。 5. **ConditionOperator.java** - 条件运算符 - **条件运算符**:`condition ? expr1 : expr2`,根据条件选择...

Global site tag (gtag.js) - Google Analytics