편집 기록

편집 기록
  • 프로필 허대영(소프트웨어융합대학)님의 편집
    날짜2016.11.12

    씨언어 소수(prime number 찾기) 코드 질문


    입력된 양의 정수(X)보다 작은 최대 소수(prime number)을 return하는 사용자 정의 함수 구하기...

    3,7 등 같은 소수를 구하려고 합니다. X를 입력하면 사용자 정의 함수에서, for문을 이용해 X보다 작은 숫자들을 소수인지 아닌지 모두 체크해보려 합니다. 그런데, 제가 문법을 잘 몰라서 그런지... result라는 변수가 초기화 되지 않았다고 오류가 뜹니다. for문이 제대로 작동하지 않아서 그런거 같은데, 사용자 정의 함수에서 for문에 어떠한 오류가 있나요?

    #include <stdio.h>
    
    unsigned int prob1(unsigned int X);
    
    int main()
    {
        unsigned int X=10;
        unsigned int result;
    
        result = prob1(X);
    
        printf("%d\n", result);
    }
    
    unsigned int prob1(unsigned int X)
    {
        unsigned int dump=0, result;
        unsigned int i=0, j;
    
        for(i=X-1;i>=3;i--)
        {
            for(j=i-1;j>=2;j--)
            {
                if((i%j)!=0)
                {
                    continue;
                }
                else if((i%j)==0)
                {
                    dump=i;
                    break;
                }
            }
    
            if(dump==0)
            {
                result=i;
                break;
            }
    
        }
    
    
        return result;
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2016.11.12

    씨언어 소수(prime number 찾기) 코드 질문


    입력된 양의 정수(X)보다 작은 최대 소수(prime number)을 return하는 사용자 정의 함수 구하기...

    3,7 등 같은 소수를 구하려고 합니다. X를 입력하면 사용자 정의 함수에서, for문을 이용해 X보다 작은 숫자들을 소수인지 아닌지 모두 체크해보려 합니다. 그런데, 제가 문법을 잘 몰라서 그런지... result라는 변수가 초기화 되지 않았다고 오류가 뜹니다. for문이 제대로 작동하지 않아서 그런거 같은데, 사용자 정의 함수에서 for문에 어떠한 오류가 있나요?

    include

    unsigned int prob1(unsigned int X);

    int main() { unsigned int X=10; unsigned int result;

    result = prob1(X);
    
    printf("%d\n", result);
    

    }

    unsigned int prob1(unsigned int X) { unsigned int dump=0, result; unsigned int i=0, j;

    for(i=X-1;i>=3;i--)
    {
        for(j=i-1;j>=2;j--)
        {
            if((i%j)!=0)
            {
                continue;
            }
            else if((i%j)==0)
            {
                dump=i;
                break;
            }
        }
    
        if(dump==0)
        {
            result=i;
            break;
        }
    
    }
    
    
    return result;