1. 程式人生 > 其它 >【GDKOI2021】數論

【GDKOI2021】數論

技術標籤:c++GDKOI2021

數論


提交檔案: 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

n2×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; }

謝謝閱讀