日期:2014-05-20  浏览次数:20808 次

求100以内所有质数的和
如题

------解决方案--------------------
找出100以内的质数,然后相加
------解决方案--------------------
楼上太有才了
------解决方案--------------------
外面一循环,内部判断,是质数就相加。
------解决方案--------------------
呵呵,我想楼主问怎么样判断一个100内的数是否为质数更合适一些。
------解决方案--------------------
public class UseLabel 
{ public static void main(String[] args) 
{
int sum = 0;
Loop: 
for(int i=2; i<100; i++) 
{ for(int j=2;j<i;j++) 
if( i%j == 0) continue Loop;
sum = sum + i;
}
System.out.println(sum);

}
------解决方案--------------------
求质数的话这个算法效率较高:
Java code

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。
------解决方案--------------------
Java code


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);

}
}