안녕하세요.
저는 지금 흔한 과제인 소수 판별 코드 짜오기 과제중입니다..
(민폐 죄송합니다.. 근데 넘 막막해요..ㅠㅠ)
대충 코드가 이렇게 되어요.
#include<stdio.h>
int PrimeOX (int num)
{
int halfnum,i,Q,result=0;
halfnum = num/2;
for ( i=2 ; i <= halfnum ; i+1)
{
Q=num%i;
{
if (Q == 0)
break;
}
if ( i == halfnum)
return;
}
return;
}
int main (void)
{
int num,result=0;
printf("정수를 입력하세요~ : ");
scanf("%d",&num);
result = PrimeOX (num) ;
if (result = 0)
printf("\n\n%d는 소수가 아닙니다.",&num);
else
printf("\n\n%d는 소수 입니다.",&num);
}
근디 저기 밑줄친 부분부터 뭔가 이상해지는 것 같아요.
printf에서 num을 출력하잖아요. 근데 4를 입력하면 막 1243140 이런숫자가 나와요.
그러니까 scanf에서 4를 입력받았을 때 출력이 (1243140는 소수입니다.) 라구 나와요..
제 의도는요
1) N를 입력하면... primeOX함수를 호출해서 값을 구하는데요.
2) (PrimeOX함수 안에서) N을 2부터 N/2까지의 수로 나눠서 (for),,
3) 나눈 나머지가 0이되면 루프문을 탈출하구 (if ~ break)..
4) 아니면 N/2의 수까지 다 나눠보고..
5) 루프문을 탈출 할 경우 1, 아닌경우 0을 main으로 보내주고 싶어요. ------> 어떻게 표현해야 할지 모르겟어요...전 빠간가봐요.
5) main안에서... 호출한 primeOX 함수에게서 받은 값에 따라 소수인지 아닌지를 판별하는 겁니다.
질문 1) main 함수에서 printf에 num을 출력하는데 왜 이상한 숫자가 나올까요..?
질문 2) PrimeOX 함수에서..num%i(i는 2 ~ N/2)가 0인경우, 그 밖의 경우 두가지로 나눌때... 어떻게 결과를 써야하나요..?
return? break?....ㅜㅠ..
복잡스런 질문 죄송함니당...