【GDKOI2021】數論
阿新 • • 發佈:2021-01-29
數論
提交檔案: number.cpp
輸入檔案: number.in
輸出檔案: number.out
時間空間限制: 1s, 512MB
題目描述
定義數論函式 λ(n) 為:
• 設 n 的質因數分解為 n = ∏ pei i ,則 λ(n) = ( 1)
∑ei
比如 λ(4) = 1, λ(2) = 1, λ(1) = 1。
你的任務是求:
輸入格式
共一行,一個整數 n。
輸出格式
共一行,一個整數,表示答案 對 998244353 取模 之後的結果
樣例資料
資料範圍
對於 20% 的資料,n ≤ 100;
對於 60% 的資料,
n
≤
2
×
1
0
5
n ≤ 2 × 10^5
n≤2×105;
對於所有的資料,n ≤ 1012。
解題思路
這道題十分的噁心,特別難推,我直接推到心態裂開,最後“借鑑”了一下wj巨爺的程式才做了出來。主要是推公式的過程難,程式碼實現起來十分簡單。最後推出來的是:
for(long long i=1;i*i<=n;i++)
ans=(ans+(n/(ii)))%998244353;
程式碼
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long n,ans=0;
int main ()
{
cin>>n;
for(long long i=1;i*i<=n;i++)
ans=(ans+(n/(i*i)))%998244353;
cout<<ans;
return 0;
}