지금 코드에서 시간 줄일 수 있는 방법은 꽤 많습니다.
1.
2,3 제외한 소수는 6으로 나눈 나머지가 1 또는 5다.
-> k와 k+2가 둘다 소수라면 k는 3이거나 k를 6으로 나눈 나머지가 5다.
-> 반복문에 k++ 말고 k=k+6을 넣으면 시간이 1/6배로 줄어든다.
2. ★★★★★ (사실 다 필요없고 이게 핵심입니다)
2이상 합성수(소수가 아닌 수) k는 반드시 2이상 루트k 이하의 약수를 가진다.
-> 2부터 루트k까지만 확인해보면 된다.
2-1.
홀수인 합성수는 k는 반드시 2이상 루트k 이하의 홀수인 약수를 가진다.
-> 2부터 루트k까지 i=i+2로 확인하면 시간이 반으로 줄어든다.
* 함수를 사용할 수 있으시군요! end랑 break로 확인하는 대신 반복문 안에서 바로 return 1, return 0 하면 보다 코드를 깔끔하게 만들 수 있어요