Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #define N 1000000
- using namespace std;
- ifstream fin("cufar.in");
- ofstream fout("cufar.out");
- int c[N+5],p,z[N+5],k[N+5],f[N+5],divv[N+5],m,n,x,y;
- long long suma;
- void Citire()
- { int i;
- fin>>p;
- if(p==1)
- { fin>>n;
- fin>>x>>y;
- }
- else
- { fin>>n;
- for(i=1;i<=n;i++)
- { fin>>z[i]>>k[i];
- f[z[i]]=k[i];
- }
- }
- }
- void Ciur()
- { int i,j;
- c[2]=1;
- for(i=2;i<=N;i=i+2)
- { divv[i]++;
- if(1==f[i]) suma=suma+1LL*2;
- }
- for(i=3;i<=N;i=i+2)
- c[i]=1;
- for(i=3;i*i<=N;i=i+2)
- if(c[i]==1)
- for(j=i;j<=N;j=j+i)
- { if(j!=i) c[j]=0;
- divv[j]++;
- if(divv[j]==f[j]) suma=suma+1LL*i;
- }
- }
- void Cerinta1()
- { int i,ct=0;
- if(x%2==0) ct++;
- if(ct==y) {fout<<2; return;}
- for(i=3;i<=N;i=i+2)
- if(c[i]==1 && x%i==0)
- { ct++;
- if(ct==y) {fout<<i; return;}
- }
- }
- void Cerinta2()
- {
- fout<<suma;
- }
- int main()
- { int i;
- Citire();
- Ciur();
- if(p==1) Cerinta1();
- else Cerinta2();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement