➤ Problem Link : APS
👉 Hint : Precompute smallest prime factors for all numbers
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
ll par[10000010];
void findPrimes(ll n)
{
for(ll i=1;i<=n;i++)
par[i]=i;
for(ll i=2;i*i<=n;i++)
{
if(par[i]==i)
{
for(ll j=i*i;j<=n;j+=i)
{
if(par[j]==j)
par[j]=i;
}
}
}
}
int main()
{
findPrimes(10000000);
int t;
cin>>t;
par[1]=0;
for(ll i=2;i<=10000000;i++)
{
par[i]+=par[i-1];
}
while(t--)
{
ll n;
cin>>n;
cout<<par[n]<<endl;
}
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
