프로그래밍

 3198, 1/160 회원가입  로그인  
   smile_mut
   [C 언어] 소수 찾기

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


#include <stdio.h>
#include <math.h>
#include <stdbool.h>

void FindItOut(int number, int *candidate);
int main (int argc, const char * argv[])
{
    int *startNum;
        int ans;
        
        printf("Type in a number: \t");
        scanf("%d", startNum);
        
        FindItOut(startNum, &ans);
        printf("The next prime after %d is %d.\n", startNum, ans);
}

void FindItOut(int number, int *ans)
{
        int i, last;
        bool isPrime;
        
        if(number <2)
                *ans = 2;
        else if(number =2)
                *ans = 3;
        else
        {
                *ans = number;
                
                if (*ans % 2 == 0)
                        *ans--;
                do
                {
                        isPrime = true;
                        *ans += 2;
                        
                        last = sqrt(*ans);
                        
                        for (i =3; (i<=last) && isPrime; i+=2)
                        {
                                if ((*ans % i ) == 0)
                                        isPrime = false;
                                
                        }
                }
                while(!isPrime);
        }
}

안녕하세요 ^0^ C언어 초보자 질문입니당.

원래 사용자가 숫자를 넣으면 그 다음 소수 를 print 해야 돼는데요
0,1 느면 2 라고 나오고
2 넣으면 3 이라고 잘만 나오는데
3이상의 숫자를 넣으면 자꾸 3 이라는 값이 나오내요....
제가 포인터 배운지 얼마 안돼서... 모가 잘못됀거져?

  Hit : 6833     Date : 2010/12/22 06:56



    
ruka270 else if(number =2)
이게 문제가 아닐까요
2010/12/23