C++언어 뉴비 질문 (사탕게임)
글쓴이: wkdalsdnr152433 / 작성시간: 수, 2021/11/10 - 2:17오전
가장 아래에 있는 첨부한 사진이 문제인데 코드는 다 작성을 하여서 맞는 코드이지만 N의 값이 높아 질수록 출력을 하는데 오래걸립니다 이를 해결 할 수 있게 코드를 바꾸어 주실 수 있으신가요?. 이 밑 코드로 하면 100,000을 대입하면 엄청 오래있다가 출력이 되는데 100,000을 넣어도 1초내로 출력이 되는 것을 원하는 것 입니다. 즉 제가 최종적으로 원하는 것은 n을 대입하면 n번째 소수를 출력하는 코드인데 아래 코드보다 더 빠르게 계산이 되는 코드가 궁금합니다
#include <stdio.h> #include <math.h> int main() { int N; int count=0; int i=2,j; scanf("%d",&N); while(count<N) { for(j=2;sqrt(i%j);j++); if(i==j) count++; i++; } printf("%d",i-1); }
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 18.48 KB |
Forums:
프라임 넘버 개수 구하는 문제인가보네요.
약수가 2개 라면 자기 자신과 1 이니까 프라임 넘버 (소수) 를 구하라는 문제인건가요?
구글에서 프라임 넘버 계산하는 알고리즘 검색하시면 아주 많이 나옵니다.
아래코드는 구글 검색에서 제일 위에 나오는 예제 코드입니다. 빠르게 하는 알고리즘은 아주 많으니 찾아서 하나씩 해 보세요.
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
댓글 달기