#include <stdio.h>

int getPrimeNumber(int a){

 int i = a;

 for(i=a-1;i>=1;i--){

  printf("%d",i);

  if(a % i == 0) {
   if(i == 1){
   return 2;
   break;
   }
  }
 
 }
}


int getPrimeNumber(int a);


 void main(){

  unsigned int a = 2000000000;

  int i=0,cnt=0;

  for(i=1;;i++){
   
   if(getPrimeNumber(a) == 2) {
   printf("%dn",a);
   cnt = cnt + 1;
   }
   
   a = a + 1;
   if(cnt == 10) break;

  }

  


 }

 



문제가 20억 이상의 소수를 10개 구하는건데 소수 구하는건 함수로 구현하라고 되어있더라구여

그래서 스샷과 같이 만들어봤어여(코드도 그냥 텍스트로 집어너려니까 뭔 단어제한 어쩌구저쩌구 떠서 스샷으로 ㅜㅜ)


일단 함수수분에서

만약 a가 20억이라고 했을때 i에다가 a값을 집어넣고

for문에서 a-1... 그러니까 19억999..부터 1까지 1씩 감소시키면서

a를 i로 나눴을때 나머지가 있나 없나를 검사하는 루프를 돌렸어여

만약 a를 i로 나눴는데 나머지가 없고 i가 1이다! 그러면 2를 리턴해주는 함수...

뭐 이렇게 만들었구여;





 

밑에 메인함수에서는 무한루프를 하나 만들어서

getPrimeNumber가 2를 뱉어내면

a를 출력하고 cnt를 하나 증가시키구여

a는 20억부터 계속 1씩 올라가여

그리고 cnt가 10이 되면 무한루프 종료하는..

이런 식으로 만들어봤는데여





이게 컴파일에러는 안나는데

조건이 뭔가 잘못된건지 자꾸 무한루프를 도네여;

제가 수학이 거지라서 조건이 어디가 잘못된건지 잘 모르겠어서 ㅜㅜ

 


조건이 어디가 잘못된건지 알려주시면 감사하겠슴다 ㅜㅜ