统计某区间内的素数并打印显示
原创
©著作权归作者所有:来自51CTO博客作者wx5925899fdb5f1的原创作品,请联系作者获取转载授权,否则将追究法律责任
1、素数统计:统计输出 start到end之间的所有素数?
2、明确什么叫素数:除了能被1和它本身整除外不能被其他数整除的数叫素数。
3、写了两种方法,两种思路
4、代码如下:
package com.tiger.prime_number;
import java.util.*;
/**
* 方法1
* @author tiger
* @Date 2017年9月5日
*/
public class PrimeCount {
public static void main(String[] args) {
List
list = primes(1,1000);
for (Integer integer : list) {
System.out.print(integer + " ");
}
System.out.println();
System.out.println("count = "+list.size());
}
private static List
primes(int start,int end){
List
list = new ArrayList
();
for (int i = start; i <= end; i++) {
list.add(Integer.valueOf(i));
if (i == 1) {
list.remove(Integer.valueOf(i));
}
for (int j = 2; j < i; j++) {
if (i%j == 0) {
list.remove(Integer.valueOf(i));
break;
}
}
}
return list;
}
}package com.tiger.prime_number;
/**
* @author tiger
* @Date 2017年9月5日
*/
public class PrimeCount2{
public static void main(String[] args){
int count = 0;
for(int i=1;i<1000;i++){
if(isPrime(i)){
count++;
System.out.print(i+" ");
}
}
System.out.println();
System.out.println("count = "+count);
}
//判断素数
private static boolean isPrime(int n){
boolean flag = true;
if(n==1){
flag = false;
}else{
for(int i=2;i<=Math.sqrt(n);i++){
if((n%i)==0 || n==1){
flag = false;
break;
}else{
flag = true;
}
}
}
return flag;
}
}