結果

問題 No.2940 Sigma Sigma Div Floor Problem
ユーザー highlighterhighlighter
提出日時 2024-09-15 21:18:22
言語 C++23
(gcc 12.3.0 + boost 1.83.0)
結果
WA  
(最新)
AC  
(最初)
実行時間 -
コード長 886 bytes
コンパイル時間 3,080 ms
コンパイル使用メモリ 251,064 KB
実行使用メモリ 12,812 KB
最終ジャッジ日時 2024-10-18 20:50:10
合計ジャッジ時間 8,725 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,816 KB
testcase_01 AC 2 ms
6,816 KB
testcase_02 AC 2 ms
6,820 KB
testcase_03 WA -
testcase_04 AC 2 ms
6,820 KB
testcase_05 AC 2 ms
6,824 KB
testcase_06 AC 2 ms
6,820 KB
testcase_07 AC 2 ms
6,820 KB
testcase_08 AC 2 ms
6,816 KB
testcase_09 AC 2 ms
6,824 KB
testcase_10 AC 2 ms
6,820 KB
testcase_11 AC 3 ms
6,816 KB
testcase_12 AC 3 ms
6,816 KB
testcase_13 AC 2 ms
6,820 KB
testcase_14 AC 2 ms
6,824 KB
testcase_15 AC 3 ms
6,820 KB
testcase_16 AC 2 ms
6,820 KB
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 AC 2 ms
6,816 KB
testcase_28 WA -
testcase_29 WA -
testcase_30 WA -
testcase_31 WA -
testcase_32 WA -
08_evil_01.txt RE -
08_evil_02.txt RE -
08_evil_03.txt RE -
08_evil_04.txt RE -
08_evil_05.txt RE -
08_evil_06.txt RE -
08_evil_07.txt RE -
08_evil_08.txt RE -
08_evil_09.txt RE -
08_evil_10.txt RE -
08_evil_11.txt RE -
08_evil_12.txt RE -
08_evil_13.txt RE -
08_evil_14.txt RE -
08_evil_15.txt RE -
08_evil_16.txt RE -
08_evil_17.txt RE -
08_evil_18.txt RE -
08_evil_19.txt RE -
08_evil_20.txt RE -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;
#define int long long

struct Eratosthenes{
	vector<bool> isprime;
	vector<int> minfactor;
	Eratosthenes(int N) : isprime(N+1,true),minfactor(N+1,-1) {
		isprime[1]=false;
		minfactor[1]=1;
		for(int p=2;p<=N;p++) {
			if(!isprime[p]) continue;
			minfactor[p]=p;
			for (int q=p*2;q<=N;q+=p){
				isprime[q]=false;
				if(minfactor[q]==-1) minfactor[q]=p;
			}
		}
	}
	vector<pair<int,int>> factorize(int n){
		vector<pair<int,int>> res;
		while(n>1){
			int p=minfactor[n];
			int exp=0;
			while(minfactor[n]==p) {
				n/=p;
				exp++;
			}
			res.emplace_back(p,exp);
		}
		return res;
	}  
};

signed main(){
	int N;
	cin >> N;
	int ans=0;
	Eratosthenes er(N+1);
	for(int i=1;i<=N;i++){
		vector<pair<int,int>> vec=er.factorize(i);
		int res=1;
		for(auto i : vec){
			res*=i.second+1;
		}
		ans+=res*(N-i+1);
	}
	cout << ans << endl;
}
0