#include <stdio.h>
#include <math.h>
int get_number();
int check_number(int number);
void main_loop();
int get_number() {//사용자에게 숫자를 입력받음
int number;
printf("숫자를 입력해주세요(0 입력시 종료)\n");
scanf("%d", &number);
return number;
}
int check_number(int number) { //소수인지 판별하는 과정
int i; //제곱근을 이용하는 이유 제곱근보다 작은 약수 하나라도 존재하면 소수가 아니기에 이를 확인하기 위해서
for (i=2; i <= sqrt(number); i++) {
if (number % i == 0) {
return 1;
}
}
return 0;
/*
[원래 코드 구성]
if (number % i == 0) {
comment = 1; // "소수가 아니다"라고 표시
}
else
comment = 0; // "다시 소수다"라고 말을 바꿈
결론은 소수임을 판단함 but, 중간에 number를 나누는 수가 존재하면 나머지 연산은 불필요해짐
*/
}
//메인 루프
void main_loop() {
int number;
while (1) {
number = get_number();
if (number == 0) {
printf("프로그램 종료\n");
break;
}
else if (check_number(number) == 1) {
printf("소수가 아닙니다\n");
}
else if (check_number(number) == 0) {
printf("소수입니다\n");
}
}
}
int main() {
main_loop();
return 0;
}