[除數函式+除法分塊]
題目
思路
大概就是列舉 1 1 1~ n n n的因子。因子為 i i i時,有 ⌊ n / i ⌋ \lfloor n/i \rfloor ⌊n/i⌋個數會用它做因子。
程式碼
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<cctype>
#include<ctime>
#include<iostream>
#include<string>
#include<map>
#include<queue>
#include<stack>
#include<set>
#include<vector>
#include<iomanip>
#include<list>
#include<bitset>
#include<sstream>
#include<fstream>
#include<complex>
#include<algorithm>
#if __cplusplus >= 201103L
#include <unordered_map>
#include <unordered_set>
#endif
#define int long long
using namespace std;
const int INF = 0x3f3f3f3f;
const int mod=998244353;
const int inv6=166374059;
const int inv2=499122177;
int cal(int x){
return (x*(x+1)%mod*(2*x+1)%mod)*inv6%mod;
}
signed main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int n;
cin>>n;
int s1=0,s2=0,s3=0;
int j=0;
for(int i=1;i<=n;i=j+1){
j=n/(n/i);
s1=(s1+(cal(j)-cal(i-1)+mod)%mod*(n/i)%mod)%mod;
s2=(s2+(j*(j+1)%mod*inv2%mod-i*(i-1)%mod*inv2%mod+mod)%mod*(n/i)%mod)%mod;
s3=(s3+(j-i+1)*(n/i)%mod)%mod;
}
cout<<((2*s1+3*s2)%mod+5*s3)%mod<<endl;
return 0;
}
這裡插入程式碼片
相關文章
- excel除法公式怎麼輸入 excel除法函式怎麼輸入Excel公式函式
- 尤拉函式、整除分塊和擴充套件歐幾里得函式套件
- 隨機變數函式的分佈隨機變數函式
- static函式塊中如何呼叫外部xml引數?函式XML
- 數論——數論分塊
- smarty塊函式使用函式
- 1分鐘掌握 Python 函式引數Python函式
- 對話方塊函式函式
- 字元函式、數字函式和日期函式字元函式
- 函式定義、函式的引數、函式的預設引數函式
- 【函式】Oracle函式系列(2)--數學函式及日期函式函式Oracle
- 聚合函式與數字函式函式
- 區分函式防抖&函式節流函式
- 數論分塊學習
- 區間眾數(分塊)
- Softmax分類函式函式
- 分頁函式 (轉)函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- 函式引數 引數定義函式型別函式型別
- Oracle 函式大全(字串函式,數學函式,日期函式,邏輯運算函式,其他函式)Oracle函式字串
- Javascript函式引數求值——Thunk函式JavaScript函式
- 函式基礎和函式引數函式
- numtoyminterval函式——數字轉換函式函式
- PHP 函式庫 1 - 函式庫的分類PHP函式
- 數學函式函式
- 素數計數函式函式
- 有標號的二分圖計數 [生成函式 多項式]函式
- 6-8 使用函式求最大公約數 (10分)函式
- 複變函式與積分變換 洛朗級數函式
- 數論分塊擴充套件套件
- Oracle OCP(03):字元函式、數字函式和日期函式Oracle字元函式
- 01—Hbuilder—js—除法、取餘數UIJS
- asp.net 除法保留小數ASP.NET
- 函式外與函式內的變數函式變數
- PHP函式,引數,可變參函式.PHP函式
- static變數,static程式碼塊,建構函式,程式碼塊等的載入順序變數C程式函式
- 千分位分隔函式函式
- JavaScript塊級作用域宣告函式JavaScript函式