5주차
양의 정수 n을 입력 받아서 1부터 n까지 모든 정수에 대해 약수를 찾는 프로그램을 다음 조건에 맞추어 작성하고 cpp 프로그램 파일을 업로드하세요.
* 입력받은 정수가 양의 정수가 아니면 다시 입력 받을 것
* 1부터 n 사이의 수 하나마다 한 줄씩 출력할 것 (아래 예시 참조)
예를 들어 숫자 4를 입력하면 다음과 같이 출력
1의 약수: 1
2의 약수: 1 2
3의 약수: 1 3
4의 약수: 1 2 4
(힌트: 나눈 나머지가 0인 수가 약수)
int main()
{
//변수 선언
double n; // 실수형 변수 사용
int N; // 실수형 변수 n을 정수형 변수로 받을 N
int a; // for문의 a
int b; // for문의 b
//화면에 문제를 띄우고 입력받는다.
printf("양의 정수 n을 입력해주세요 : \n"); //화면에 처음 출력될 문장
scanf("%lf", &n); //실수형태로 n을 입력받는다.
//양의 정수가 아닐 경우 다시 입력을 요구
while((n - (int)n) != 0 || n<=0) //int로 형태 변환
{printf("양의 정수가 아닙니다 다시 입력해주세요!\n"); // 다시 입력해달라고 화면에 표시한다
scanf("%lf", &n);} // 잘못된 값임으로 다시 입력받는다.
// 실수는 % 연산자로 나머지를 구할 수 없어서 새로 정수 N을 지정
N=n;
for(a=1;a<=N;a++) //입력한 수 이하의 정수 a를 1부터 대입해준다
for(b=1;b<=a;b++) //a보다 작은 b를 지정해준다
{ if(a%b == 0) //a를 b로 나누었을 때 나머지가 0일경우
printf("%d의 약수: %d \n",a,b); } // a는 N까지 증가함으로 1~N까지 약수들이 출력된다.
printf("1부터 n까지 모든 정수에 대한 약수입니다. \n");
}
No comments:
Post a Comment