Cod sursa(job #2636768)
| Utilizator | Data | 19 iulie 2020 19:10:32 | |
|---|---|---|---|
| Problema | Mins | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("mins.in");
ofstream out("mins.out");
typedef long long ll;
const ll lim=1e6+3;
bool primes[lim];
ll phi[lim];
void ciur(ll n,ll m)
{
--n; --m;
for(ll i=1;i<=n;++i)
{
phi[i]=m;
primes[i]=false;
}
for(ll i=2;i<=n;++i)
if(!primes[i])
{
for(ll j=i;j<=n;j+=i)
{
phi[j]=(phi[j]-phi[j]/i);
primes[j]=true;
}
}
ll ans=0;
for(ll i=1;i<=n;++i)
ans+=phi[i];
out<<ans<<'\n';
}
int main()
{
ll n,m;
in>>n>>m;
ciur(n,m);
return 0;
}
