java.util.bitSet 을 사용 하여 소 수 를 구 하 는 알고리즘
java.util.bitSet 을 사용 하여 소 수 를 구 하 는 알고리즘:예 를 들 어 100 이내 의 소 수 를 찾 으 려 면 1.BitSet bs,0,1 위치 false 를 설명 합 니 다.나머지 는 트 루.2,2 부터 bs 를 옮 겨 다 니 며 true 라면 내부 순환 을 합 니 다.3.내부 순환:외 향 내부 고리 i 부터 bs 를 옮 겨 다 니 며 매번 i(이것 은 매우 중요 합 니 다)를 추가 하고 내부 순환 j 를 bs 에서 false 로 만 듭 니 다.코드 는 다음 과 같 습 니 다(int i=0;i
package 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,
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.