코딩테스트

C# 알고리즘 - 약수의 개수와 덧셈

작성자 정보

  • 마스터 작성
  • 작성일

컨텐츠 정보

본문

[문제 설명]

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

 

[제한사항]

1 ≤ left ≤ right ≤ 1,000

 

[입출력 예]

 

[입출력 예 설명]

캡처.PNG

 

[코드] 

using System;

using System.Linq;


public class Solution {

    public int solution(int left, int right) {

        int answer = 0;

        for(int num = left; num <= right; num++)

        {

            int count = 0;

            for(int i=1; i<= num; i++)

            {

                if(num % i == 0)

                {

                    count++;

                }

            }

            if(count % 2 == 0)

            {

                answer += num;

            }

            else

            {

                answer -= num;

            }

        }

        

        return answer;

    }

}

 

[풀이]

 

1.for문을 돌리기

for(int num = left; num <= right; num++){}

 

2.for문안에 변수 count를 선언

int count = 0;

 

3.for문을 한번더 돌려 count를 증가 시키기

for(int i=1; i<= num; i++)

{

      if(num % i == 0)

      {

        count++;

      }

}

 

4.count % 2 == 0(짝수)이면 num을 더하고 아니면(홀수면) num을 뺀다.

 if(count % 2 == 0)

{

      answer += num;

}

else

{

      answer -= num;

} 

 

 

[주소]

https://school.programmers.co.kr/learn/courses/30/lessons/77884

해당 알고리즘 문제는 프로그래머스의 알고리즘 문제입니다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.
알림 0