結果
問題 | No.278 連続する整数の和(2) |
ユーザー |
![]() |
提出日時 | 2020-02-26 15:52:53 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 16 ms / 2,000 ms |
コード長 | 1,045 bytes |
コンパイル時間 | 1,525 ms |
コンパイル使用メモリ | 166,552 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-13 15:23:41 |
合計ジャッジ時間 | 2,202 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 18 |
ソースコード
#include <bits/stdc++.h>#define rep(i,n) for(int i = 0; i < (n); ++i)#define srep(i,s,t) for (int i = s; i < t; ++i)#define drep(i,n) for(int i = (n)-1; i >= 0; --i)using namespace std;typedef long long int ll;typedef pair<int,int> P;#define yn {puts("Yes");}else{puts("No");}#define MAX_N 200005// long versionlong long int GCD(long long int x, long long int y){if(x>y){long long int swap = x;x = y;y = swap;}while(true){if(y%x==0){return x;}else{long long int amari = y%x;y = x;x = amari;}}}int main() {ll n;cin >> n;ll m;if(n % 2 == 0){m = n / 2;}else{m = n;}ll ans = 0;srep(i,1,m+1){ll ii = i;if(ii * ii == m){ans += ii;break;}if(ii * ii > m)break;if(m % ii == 0){ans += ii + m / ii;}}cout << ans << endl;return 0;}