본문 바로가기
컴퓨터/C, C++

[C언어] 입력하는 범위 사이 n의 배수의 합 구하기

by 도도새 도 2021. 12. 7.

입력하는 범위 사이 n의 배수의 합

 

 C언어에서 n의 배수를 구하는 방법을 이용해 사용자로부터 범위를 입력받아 그 범위 사이 n의 배수의 합을 출력하는 프로그램을 작성합니다.

n의 배수 판별

 

 어떤 수가 n의 배수인지 알려면 어떤 수를 n으로 나누었을 때 나머지가 0이 나오면 됩니다. 다른 말로 하면, 모듈러 연산을 했을 때 0이 나오면 됩니다.

 

이를테면 5는 3의 배수일까요? 5%3을 하면 2라는 나머지가 남게 됩니다. 그러므로 5는 3의 배수가 아닙니다.

 

그럼 6은 3의 배수일까요? 6%3을 하면 나머지는 0이 됩니다. 그러므로 6은 3의 배수입니다.

 

 이 특징을 이용해서 특정 범위 내의 모든 n의 배수를 찾는 프로그램을 작성합니다. 범위와 n은 사용자로부터 입력받습니다.

 

n의 배수 출력 프로그램 코드

#include <stdio.h>

int multiple(int b, int e, int n){
	int sum = 0;
	int i;
	for(i=b;i<=e;i++)
		if(i%n==0){
			printf("sum %d\n", i);
			sum += i;
		}
	return sum;
}

int main(void){
	int b, e, n;
	printf("범위를 입력해주세요. ");
	scanf("%d%d", &b, &e);
	printf("배수를 찾을 n을 입력해 주세요 :  ");
	scanf("%d", &n);
		
	printf("sum == %d\n", multiple(b,e, n));
	
	return 0;
}

 

간단 설명:

6, 7번째 줄, 입력된 첫 번째 숫자 6부터 마지막 숫자 e까지 1씩 증가하며 n과 비교, 만약 현재 i%n의 결과가 0이면 해당 i를 sum에 더함

 

출력 결과

 

댓글