문제
어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1≤N≤10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한다. 이때, 사용하는 자연수는 N이하여야 한다.
예를 들어, 15를 나타내는 방법은 15, 7+8, 4+5+6, 1+2+3+4+5의 4가지가 있다. 반면에 10을 나타내는 방법은 10, 1+2+3+4의 2가지가 있다.
N을 입력받아 가지수를 출력하는 프로그램을 작성하시오.
입력
첫 줄에 정수 N이 주어진다.
출력
입력된 자연수 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 출력하시오
예제 입력 1
15 |
예제 출력 1
4 |
더보기
Solution
#include<stdio.h>
int main(void)
{
int N, count=0;
scanf("%d", &N);
for(int i=1;i<=N;i++)
{
int sum=i;
for(int j=i+1;sum<N;j++)
sum+=j;
count+=sum==N;
}
printf("%d\n", count);
return 0;
}
728x90
'백준 알고리즘' 카테고리의 다른 글
<백준 알고리즘> 1292번: 쉽게 푸는 문제 (0) | 2020.10.13 |
---|---|
<백준 알고리즘> 2003번: 수들의 합 2 (0) | 2020.10.13 |
<백준 알고리즘> 1373번: 2진수 8진수 (0) | 2020.10.13 |
<백준 알고리즘> 11005번: 진법 변환 2 (0) | 2020.10.13 |
<백준 알고리즘> 18406번: 럭키 스트레이트 (0) | 2020.10.13 |