java.util.bitSet 을 사용 하여 소 수 를 구 하 는 알고리즘

100 이내 의 소수 소수 정 의 를 찾 아 라.질 수 는 소수 라 고도 부 르 는데 1 이상 의 자연수 에서 1 과 이 정수 자 체 를 제외 하고 다른 자연수 에 의 해 정 제 될 수 없 는 수(1 과 그 자체 의 두 인수 만 있 는 수)를 말한다.
java.util.bitSet 을 사용 하여 소 수 를 구 하 는 알고리즘:예 를 들 어 100 이내 의 소 수 를 찾 으 려 면 1.BitSet bs,0,1 위치 false 를 설명 합 니 다.나머지 는 트 루.2,2 부터 bs 를 옮 겨 다 니 며 true 라면 내부 순환 을 합 니 다.3.내부 순환:외 향 내부 고리 i 부터 bs 를 옮 겨 다 니 며 매번 i(이것 은 매우 중요 합 니 다)를 추가 하고 내부 순환 j 를 bs 에서 false 로 만 듭 니 다.코드 는 다음 과 같 습 니 다(int i=0;ipackage com; import java.util.BitSet; public class mianTestSix { /** * @param args */ public static void main(String[] args) { BitSet bs=new BitSet(100); initBitSet(bs); findSushuBitSet(bs); printSushuBitSet(bs); } // 0,1 false, true. public static void initBitSet(BitSet bs){ for(int i=0;i<bs.size();i++){ if(i==0||i==1){ bs.set(i, false); }else{ bs.set(i, true); } } } // , public static void findSushuBitSet(BitSet bs){ for(int i=0;i<bs.size();i++){ if(bs.get(i)){ // for(int j=2*i;j<bs.size();j+=i){ bs.set(j, false); } } } } // 1 , public static void printSushuBitSet(BitSet bs){ StringBuffer buf=new StringBuffer(); int num=0; for(int i=0;i<100;i++){ if(bs.get(i)){ buf.append(i+","); num++; } if((num+1)%20==0&&num!=0){ buf.append("
"); } } System.out.println(buf.toString()); } }

 
출력:
2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,
 
71,73,79,83,89,97,
 

좋은 웹페이지 즐겨찾기