[R] 조건문과 반복문을 이용하여 약수 출력

해당 포스트에서는 R에서 조건문과 반복문을 이용하여 약수를 출력하는 방법을 소개합니다.

r-print-divisor

1. INTRO

이번 포스트에서는 조건문과 반복문을 이용하여 특정 수의 약수를 출력하는 방법을 설명합니다. 비교적 간단한 프로그래밍 문제이기에 설명이 길진 않으나 프로그래밍 입문자분이라면 동작 구조를 이해하고 단계별 출력을 직접 확인해 보시는 것이 좋습니다.

r-print-divisor
▲ 출력 예시

2. R 코드

아래는 약수를 구하는 사용자 함수 divisor의 코드입니다. 사용자가 약수를 구하고자 하는 수 n을 입력하면, n의 약수를 출력해 주는 구조입니다.

코드를 좀 더 자세히 살펴보면,

  1. divisor()함수는 약수를 구하려는 수 n을 입력받고
  2. 반복문 for()함수를 이용해 i를 1부터 n까지 증가시키면서
  3. ni로 나누었을 때 나머지가 0이 되는 i들을 출력합니다
  4. 출력은 cat()함수를 이용하며 조건을 만족하는 i와 뒤에 공백()을 출력하여 1줄에 연결하여 출력합니다
divisor <- function(n){

  for(i in 1:n) {
    if (n %% i == 0) {
      cat (i, " ")
    }
  }
}

실행 결과 예시

아래는 위에서 생성한 divisor()함수를 이용해 42의 약수를 출력하는 예시입니다.

divisor(42)
1  2  3  6  7  14  21  42 

3. 마무리

이번 포스트에서는 R에서 조건문과 반복문을 이용하여 약수를 출력하는 방법에 대해 설명하였습니다. 프로그래밍 난이도로는 초급에 해당하지만,입문자분들에게는 조건문과 반복문의 중첩 사용이 어렵게 느껴지실 수 있습니다. 반복값을 하나씩 증가시키면서 출력을 적어보면 동작 구조에 대한 감이 조금은 잡히실 겁니다.

4. 관련 링크

[1] [Python] 약수 구하기 / 약수 개수 구하기 / 소수 여부 판단 (feat. 한방에 구하기)
[2] [R] 5의 배수 벡터 생성 및 추출
[3] [R] 수열(progression) 구현 하기 (1,2,5,10,20,50,100,...,5x10^4)