본문 바로가기

에라토스테네스의체2

[Swift][소수][LV_2] K진수에서 소수개수 구하기 요구능력 : 소수판별 코드설명 : 처음에 에라토스테네스의 체를 100만으로 설정하고 풀었는데, 두 개의 테스트케이스에서 coreDumped가 나왔다. 인덱스 문제인것같아서 n = 1000000으로 설정하고 k = 6으로 설정해봤는데, 에라토스테네스의 체에 들어간 수가 100만 보다 큰 수가 나와버려서 coreDumped된것이었다. 그래서 4천만으로 설정하고 해봤는데 당연히 시간초과 ^^ 에라토스테네스가 더 빠른건줄알고 100만으로 두고 그보다 큰수가 나오면 아래에 isPrime함수를 사용했는데, 이렇게 사용한 시간보다 isPrime만 사용한 시간이 더 짧았다. 사실 이 문제에서 소수를 판별해봤자 몇개나 판별하겠나.. 이 문제를 통해서 에라토스테네스의 체를 소수구한다고 아무때나 사용하는게 아니라는것을 알았.. 2022. 2. 25.
[Swift][Math] 백준 6588번 (골드바흐의 추측) 요구능력 : 소수와 홀수에 대한 이해 코드설명 : 문제의 핵심 1. 두개의 홀수 2. 두개의 소수 처음에는 에라토스테네스의 체로 소수부분을 모두 구해준다.(동빈나님 블로그에 아주 잘 설명되어있습니다!) var aa = Array(repeating: 0, count: 1000001) for i in 2...1000000{ aa[i] = i } for i in 2...1000000{ if aa[i] == 0{continue} for j in stride(from: i + i, through: 1000000, by: i){ aa[j] = 0 } } 저는 isGoldBach로 두 홀수 소수의 합으로 나타낼 수 있는 경우에 isGoldBach를 true로 바꿔주고 이곳을 지나지 않는다면 false로 나타낼수 없는.. 2021. 11. 22.