24.02.02 TIL - 알고리즘 : 프로그래머스, 약수의 합 | 나머지가 1이 되는 수

JJwoo·2024년 2월 1일

알고리즘

목록 보기
4/18

1. 약수의 합

1. 풀이

public class Solution 
{
    public int solution(int n) {
        int answer = 0;
        
        for(int i = 1; i<= n; i++)
        {
            if(n%i == 0)
            {
                answer += i;
            }
        }
        return answer;
    }
}

변수 answer를 0으로 초기화하여 약수들의 합을 저장

  • 약수 탐색: 1부터 n까지의 모든 숫자에 대해 반복하면서, n을 현재 숫자 i로 나누어 나머지가 0인지 확인, 나머지가 0이라는 것은 i가 n의 약수임을 의미.

  • 약수의 합 더하기: n의 약수를 찾을 때마다 answer에 해당 약수 i를 더함

  • 결과 반환: 모든 약수의 합을 저장한 answer를 반환.



2. 나머지가 1이 되는 수

풀이


using System;

public class Solution {
    public int solution(int n) {
        int answer = 0;

         for (int i = 1; i <= n; i++)
            {
                if(n%i == 1)
                {
                    answer = i;
                    break;
                }
            }

        return answer;
    }
}
  • for 루프를 이용하여 i를 1부터 n까지 증가시키면서 반복

  • n % i == 1 조건이 참이면 answer변수에 i를 저장하고, break를 사용하여 루프 종료 ( 가장 작은 x를 찾았을 때 )

  • 반환

ex)
n이 10인 경우, 3이 반환 -> 10을 3으로 나눈 나머지가 1이 되기 때문

i를 0으로 하면 오류가 나는 이유


C#에서 0으로 나누는 시도는 "DivideByZeroException" 예외를 발생 = 분모(나누는 수)가 0일 때 발생하는 예외

profile
개발 모코코

0개의 댓글