求自然数n以内的质数
filed in Java, 数据结构和算法 on Apr.24, 2007, by javafuns
今天遇到这样一道题目:求自然数n以内的质数
经过观察以后,我觉得可以以下方式来求解:
将已求解的质数放入结果数组,判断下一个数是否是质数,只要将它除以质数结果数组,如果都不能被整除,那么这个数也是一个质数,放入结果数组中。
/*
* PrimeNumber.java
*
* Created on 2006年8月12日, 下午6:05
*
* This class is under Gnu GPL.
*/
package primenumber;
import java.io.IOException;
/**
* Get prime numbers.
*
* @author <a href=”guangquanzhang@gmail.com“>guangquanzhang</a>
*/
public class PrimeNumber {
/** Creates a new instance of PrimeNumber */
public PrimeNumber() {
}
/**
* @param n natural number, 1-n
* @return all prime numbers between 1 and n.
*/
public static void getPrime(int n) {
int[] primes = new int[n];
int primesSize = 0;
// its apparent that 1, 2 is prime numbers
primes[0] = 1;
primes[1] = 2;
primesSize = 2;
for(int i=3; i<n; i++) {
int j = 1;
for (; j < primesSize; j++) {
if(i%primes[j] == 0) {
break;
}
}
if(j == primesSize) {
primes[primesSize] = i;
primesSize++;
}
}
// print all prime numbers
for(int k = 0; k < primesSize; k++) {
System.out.println(k + “ : “ + primes[k]);
}
}
public static void main(String[] args) {
PrimeNumber.getPrime(24);
}
}




