Cod sursa(job #3304982)

Utilizator lucaje123Vartolomei Luca lucaje123 Data 29 iulie 2025 11:46:35
Problema Mins Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#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;
}