fragment-header
fragment-markdown
홈
로그인
로그아웃
내 블로그
설정
로그인
백준 25908 (C++) 수열의 합
최초 업로드: 2025-07-17 15:09:42
최근 수정 시간: 2025-07-25 08:44:37
게시자: rlatjwls3333
카테고리: 백준
조회수: 3
# [Gold V] 수열의 합 [문제 링크](https://www.acmicpc.net/problem/25908) ## 문제 설명 <p>양의 정수 $n$의 모든 양의 약수를 $d_1,d_2,\cdots ,d_k$라 할 때, $a_n=\left( -1 \right)^{d_1}+\left( -1 \right)^{d_2}+\cdots +\left( -1 \right)^{d_k}$으로 정의한다.</p> <p>양의 정수 $S,T$가 주어질 때, $\sum_{i=S}^{T}{a_i}$을 구하시오.</p> ## 입력 <p>첫 번째 줄에 양의 정수 $S,T$가 공백으로 구분되어 주어진다. $(1\le S\le T\le 10^{7})$</p> ## 출력 <p>$\sum_{i=S}^{T}{a_i}$을 출력한다.</p> ## 풀이 #### 배수를 이용해 범위 내에 해당 수를 약수로 가지는 수가 몇 개가 있는지 알 수 있다는 아이디어를 사용했다. ``` c++ #include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int total=0, s, t; cin >> s >> t; for(int i=1;i<=t;i++) { int cnt = t/i - (s-1)/i; if(i%2==0) total += cnt; else total -= cnt; } cout << total; } ```