C# 알고리즘 - 약수의 개수와 덧셈
작성자 정보
- 마스터 작성
- 작성일
본문
[문제 설명]
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
[제한사항]
1 ≤ left ≤ right ≤ 1,000
[입출력 예]
[입출력 예 설명]
[코드]
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
해당 알고리즘 문제는 프로그래머스의 알고리즘 문제입니다.
관련자료
-
이전
-
다음