for(int i=2;i<10000;i++){
if(prime[i] == 0){
int s = 10000/i;
for(int j=2;j<s;j++){
prime[j*i] = 1;
}
}
}
-> i = 101이 됐다고 치면, s = 99고, j < 99니 i * j = 9999인 케이스가 안 됩니다.
헷갈리는 코딩은 최대한 피하고
for(int j=2;i*j<=10000;j++){
prime[j*i] = 1;
}
이렇게 하는 편을 추천드립니다
dlalsrl 7년 전
먼저 소수인지 아닌지를 1~10000까지 구합니다.
그후 bfs를 사용하여 1000의자리 100의 자리 10의자리 1의 자리를 바꾸면서
업데이트를 합니다. 그런대 틀리네요 ㅠㅠ
무었이 틀렸는지 지적해주세요요