日期:2014-05-20 浏览次数:21013 次
public static int primeNumber(int[] prime, int n, int total) {
        int i, j;
        int gab = 2;
        boolean count;
        for(i = 7; i <= n;i += gab) {
            count = true;
            gab = 6 -gab;
            for(j = 0; prime[j] <= Math.sqrt( i );j++) {
                if(i % prime[j] == 0) {
                    count = false;
                    break;
                }
            }
            if(count) {
                prime[total] = i;
                total++;
            }
        }    
        return total;
    }
------解决方案--------------------
如果a为质数,则从1到 a的平方根 之间的质数都不能 整除 a。
------解决方案--------------------
public class Test4 {
    public static void main(String args[]){
        int sum = 0;
        boolean isPrimeNumber = true;
        for(int i = 2;i < 100;i++){
            for(int j = 2; j <= Math.sqrt(i); j++){
                if((i % j) == 0){
                    isPrimeNumber = false;
                    break;
                }    
            }
            if(isPrimeNumber == true)
                sum += i;
            isPrimeNumber = true;
        }
        System.out.println(sum);
    }
}
------解决方案--------------------
import java.util.*;
public class test{
   public static void main(String[] args) {
       boolean[] isNotPrime = new boolean[100];
       int sum=0;
      
        for (int i = 2; i < 100; ++i){
           if (!isNotPrime[i]){
                sum+=i;
                for (int j = i*i; j < 100; j+=i){
                     isNotPrime[j] = true;
                }
           }
       }
       System.out.println(sum);
   }
}