如题
------解决方案--------------------
找出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);
}
}