프로그래밍

 3198, 1/160 회원가입  로그인  
   ijs2you
   C언어(열혈C) 예제풀이중 안풀려서 질문드려요 ㅠㅠ

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6585 [복사]



prat1 끝나서 도전!프로그래밍1 하고있는데요.
도전5번
10개의 소수를 출력하는 프로그램을 작성해보자.
이거 머리 싸메면서 겨우 만들었는데 출력이 이상하네요..
뭐가 문제일까요..

#include <stdio.h>

int primeNum(int n)
{
        int rot=0;
        int nanu=1;

        for(;nanu<=n;nanu++)
        {
                n%nanu==0;
                if(!(n%nanu==0))
                {
                        continue;
                }
                rot++;
        }
        if(rot==2)
                return n;
}

int main(void)
{
        int num=2;
        int rota=1;
        printf("\n Prime Number : ");

        for(;rota<11;rota++)
        {
                printf("%d ",primeNum(num));
                num++;
        }
        return 0;
}

출력.
Prime Number : 2 3 5 5 7 7 9 10 11 11 계속하려면 ~

멘붕이네요.. 도와주세요 ..

그리고 한가지 추가질문 있습니다.
제가 강의 안보고 혼자힘으로 해볼려고 책만보면서 컴퓨터 켜놓고
공부하고 있는데요.. 갈수록 어려워지네요.. ㅜ ㅜ 강의 보면서 하는게 좋을까요??

  Hit : 5802     Date : 2017/08/28 10:34



    
ijs2you 소수는 나눠지는 수가 1과 자기자신밖에 없다는거 이용해서 만드려고 한건데
뭐가 잘못된건지 이상하네요.. ㅠㅠ
2017/08/28  
gaelim 안녕하세요 우선 첫번째는 메인함수를 볼게요 메인함수 rota 는 로테이션을 뜻하는 것이겠지요, 아마 10 개의 소수를 찾아줄것이러 기재하셧겟지만 우선 printf 의 인자를 잘보시면 어찌됏든 prime(num)으로 넘어갈거기때문에 num 2 에서부터 11 까지 호출하면서 print 를 수행할것입니다. 이부분에 대해서 생각을 해보셔야하구요 ,(즉 , 함수의 return 형식이나 rota 가 소슈일때만 중가하게 조작해주시면됩니다) 또한 소수 판별하실때 1 에서부터 인자로넘어간 자기자신까지 나눌수 잇는 수가 2 개일때 변수 (rota==2) 리턴 한다고햇는데 rota!=2 일땜 어떤게 리턴될까요? 곰곰히생각해보ㅛㅔ요 이 부분에 대해 수정이 필요할거같습니다 2017/08/30  
gaelim #include <stdio.h>

int prime(int n)
{
int rot=0;
for(int nanu=2;nanu*nanu<=n;nanu++)
{
if(!(n%nanu)) { rot++; break; }
}
if(rot) return 0;
else return 1;
}

int main(void)
{
int num=2;
printf("\n Prime Number : ");

for(int rota=0;rota<10;num++)
{
if(prime(num)){
printf("%d ",num);
rota++;
}
}
printf("\n");
return 0;
}
2017/08/31  
ijs2you 정말 감사합니다~ 덕분에 잘 이해하고 해결했습니다!! 2017/08/31  
menial 열공하세요 2018/11/21