0
0
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
// carot15
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll nmax=1e7+5;
bool f[nmax];
int main(){
ll l,r,ans=0;
cin>>l>>r;
for (int i=2;i*i<=r;i++)
if (!f[i])
for (int e=i*i;e<=r;e+=i) f[e]=1;
for (int i=2;i<=r;i++)
if (!f[i]) {
if (i>=l) ans+=max(0LL,(r/i-(l-1)/i-1)*i);
else ans+=(r/i-(l-1)/i)*i;
}
cout<<ans;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
304
104
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int h = 10000000;
bool kt[h+7] = {false};
ll l, r, n = 0, a[h+7], res = 0;
void sieve(){
kt[0] = true; kt[1] = true;
for ( int i = 2; i * i <= h; i++ ){
if ( kt[i] == false )
for ( int j = i * i; j <= h; j += i ) kt[j] = true;
}
for ( int i = 2; i < h; i++ ){
if ( !kt[i] ){
for ( int j = 2 * i; j <= h ; j += i ) a[j] += i;
}
}
}
int main(){
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
sieve();
cin >> l >> r;
for ( int i = l; i <= r; i++ ) res += a[i];
cout << res;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin
268
3764
209
// carot15 #include<bits/stdc++.h> using namespace std; #define ll long long const ll nmax=1e7+5; bool f[nmax]; int main(){ ll l,r,ans=0; cin>>l>>r; for (int i=2;i*i<=r;i++){ if (!f[i]){ for (int e=i*i;e<=r;e+=i) { f[e]=1; } } } for (int i=2;i<=r;i++) if (!f[i]) { if (i>=l) ans+=max(0LL,(r/i-(l-1)/i-1)*i); else ans+=(r/i-(l-1)/i)*i; } cout<<ans; } Rút gọn// carot15 #include<bits/stdc++.h> using namespace std; #define ll long long const ll nmax=1e7+5; bool f[nmax]; int main(){ ll l,r,ans=0; cin>>l>>r; for (int i=2;i*i<=r;i++){ if (!f[i]){ for (int e=i*i;e<=r;e+=i) { f[e]=1; } } } ... xem thêm
268
3764
209
copy bị xấu quá =)
268
3764
209
đã AC trên https://vinhdinhcoder.net/Problem/Details/4641