Pagini recente » Cod sursa (job #1987533) | Cod sursa (job #2893727) | Cod sursa (job #1216505) | Cod sursa (job #1416541) | Cod sursa (job #3304982)
#include <fstream>
#include <vector>
#include <string.h>
using namespace std;
ifstream cin("mins.in");
ofstream cout("mins.out");
int lin, col;
long long pinex(long long A, long long B){
vector<long long> primes;
for(long long d=2;d*d<=A;d++){
if(A%d==0){
primes.push_back(d);
while(A%d==0){
A=A/d;
}
}
}
if(A>1){
primes.push_back(A);
}
int k=primes.size();
long long ans=B;
for(int mask=1;mask<(1<<k);mask++){
long long p=1;
int cnt=0;
for(int i=0;i<k;i++){
if(mask&(1<<i)){
p=p*primes[i];
cnt++;
}
}
if(cnt%2==0){
ans+=B/p;
}
else{
ans-=B/p;
}
}
return ans;
}
int main(){
cin>>lin>>col;
long long ans=0;
for(int i=1;i<lin;i++){
ans+=pinex(i, col-1);
}
cout<<ans;
}