Cod sursa(job #1082138)

Utilizator binicBinica Nicolae binic Data 14 ianuarie 2014 10:57:59
Problema Principiul includerii si excluderii Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.24 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
int n,i,c,b,k,x,d,t,s,w,j,p,q,r,o,h,a[3][100000];
int main ()
{
    freopen("pinex.in","r",stdin);
    freopen("pinex.out","w",stdout);
    scanf("%d\n",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d %d",&c,&b);
        k=0;
        x=b;
        d=2;
        while(b>1)
        {
            p=0;
            while(x%d==0)
            {
                p++;
                x=x/d;
            }
            if(p>0)
            {
                k++;
                a[1][k]=d;
                s=s+c/d;
            }
            d++;
        }
        t=k;
        w=1;
        for(j=2;j<=t-1;j++)
        {
            w=w*(-1);
            if(j%2==0)
            {
                p=2;
                q=1;
            }
            else
            {
                p=1;
                q=2;
            }
            r=0;
            for(o=2;o<=k;o++)
            {
                for(h=1;h<o;h++)
                {
                    r++;
                    a[p][r]=a[q][o]*a[q][h];
                    s=s+a[p][r]*w;
                }
            }
            k=r;
        }
        s=c-s;
        printf("%d\n",s);
    }
    return 0;
}