int main()
{
int i;
int j;
printf("숫자 입력 :");
scanf("%d", &j);
for(i=2; i<j; i++)
{
if(j%i==0)
printf("소수가 아닙니다.");
else
printf("소수 입니다.");
break;
}
}
15를 입력하면 왜 소수입니다 가 출력되는지 아는 사람?
int main()
{
int i;
int j;
printf("숫자 입력 :");
scanf("%d", &j);
for(i=2; i<j; i++)
{
if(j%i==0)
printf("소수가 아닙니다.");
else
printf("소수 입니다.");
break;
}
}
15를 입력하면 왜 소수입니다 가 출력되는지 아는 사람?
i가 2일 때 15 % 2 == 1이 되니까 else 문의 printf("소수 입니다.");가 잘못 실행되어 버린 거지.
for 에 i <= j 가 되어야 할듯?
루프는 for(i = 2; i < j; i++) { if(j % i == 0) { break; } } 이렇게 짜고
아 잘못봤다. 자야하나
루프 바로 다음에 if(i == j) { /* 정말 끝까지 다 돌면서 나누어지는 게 없어서 루프가 끝난 경우 */ printf("소수입니다.\\n"); } else { printf("소수가 아닙니다. %d로 나누어 집니다.\\n", i); } 식으로 쓰면 판별이 올바르게 되겠지.
http://dblack.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다.