#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5+37;
int mod = 998244353;
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n; cin >> n;
vector<int> a(n);
vector<int> b((int)1e5+37, 0);
for(auto &i: a) cin >> i;
for(int i=0; i<n; i++){
int ma = a[i];
for(int l=i; l<n; l+=(i+1)){
ma=max(ma, a[l]);
}
b[ma]++;
}
vector<int> p(n+5);
p[0]=1;
for(int i=1; i<n+5; i++){
p[i] = p[i-1]*2;
p[i] %= mod;
}
int el=1, ans = 0;
for(int i=0; i<1e5+37; i++){
if(i!=0)
b[i]+=b[i-1];
b[i]%=mod;
int val = p[b[i]]-((i==0)?0:p[b[i-1]]);
val %= mod; val+= mod; val%=mod;
ans+=(val*i)%mod;
ans %= mod;
// cout << val << "\n";
}
cout << ans;
}
1706A - Another String Minimization Problem | 1695B - Circle Game |
1702B - Polycarp Writes a String from Memory | 1701A - Grass Field |
489C - Given Length and Sum of Digits | 886B - Vlad and Cafes |
915A - Garden | 356A - Knight Tournament |
1330A - Dreamoon and Ranking Collection | 1692B - All Distinct |
1156C - Match Points | 1675A - Food for Animals |
1328C - Ternary XOR | 1689A - Lex String |
1708B - Difference of GCDs | 863A - Quasi-palindrome |
1478A - Nezzar and Colorful Balls | 1581B - Diameter of Graph |
404A - Valera and X | 908A - New Year and Counting Cards |
146A - Lucky Ticket | 1594C - Make Them Equal |
1676A - Lucky | 1700B - Palindromic Numbers |
702C - Cellular Network | 1672C - Unequal Array |
1706C - Qpwoeirut And The City | 1697A - Parkway Walk |
1505B - DMCA | 478B - Random Teams |