1부터 n까지 모든 정수에 대해 약수를 찾는 프로그램

5주차



양의 정수 n을 입력 받아서 1부터 n까지 모든 정수에 대해 약수를 찾는 프로그램을 다음 조건에 맞추어 작성하고 cpp 프로그램 파일을 업로드하세요.
* 입력받은 정수가 양의 정수가 아니면 다시 입력 받을 것
* 1부터 n 사이의 수 하나마다 한 줄씩 출력할 것 (아래 예시 참조)

예를 들어 숫자 4를 입력하면 다음과 같이 출력
1의 약수: 1
2의 약수: 1 2
3의 약수: 1 3
4의 약수: 1 2 4

(힌트: 나눈 나머지가 0인 수가 약수)



#include <stdio.h>



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: