public static int sum(int n, int m) {
int count = 0;
int start = 2;
int sum = 0;
while (true) {
if (check(start)) {
count++;
}
if (count >= n && count <= m && check(start)) {
sum += start;
} else if (count > m) {
break;
}
start++;
}
return sum;
}
public static boolean check(int n) {
for (int i = 2; i <= n - 1; i++) {
if (n % i == 0)
return false;
}
return true;
}
} 作者: 苗超维 时间: 2016-2-14 00:23
谢谢 我也学习到了 作者: ApiceLove 时间: 2016-2-14 12:19
package com.itheima.utils;
public class PrimeNumber {
/**
* 判定一个整数是否为素数
* @param value 需要判定的整数
* @return 是素数返回true,否则返回false
*/
public static boolean check(int value) {
if(value<2){
return false;
}
for (int i = 2; i < value; i++) {
if (value % i == 0) {
return false;
}
}
return true;
}
/**
* 查找第index个素数是
* @param index 第index个素数
* @return 需要的素数
*/
public static int getPrimeNumber(int index){
if(index<0){
throw new IllegalArgumentException("输入的"+index+"必须为正整数");
}
int acount=0;
int value;
for(value=1;acount<index;value++){
if(check(value)){
acount++;
}
}
return value-1;
}
}
public class PrimeNumberDemo {
public static void main(String[] args) {
int n=2;
int m=4;
System.out.println(getSum(n,m));
}
private static int getSum(int n,int m){
int sum=0;
for(int i=n;i<=m;i++){
sum=sum+PrimeNumber.getPrimeNumber(i);
}
return sum;