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에 따라 라이센스가 부여됩니다.