Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #include<iostream>
- using namespace std;
- bool p[1000001];
- void sieve(){
- for(int i=2;i*i<1000001;i++){
- if(p[i]){
- for(int j=i*i;j<1000001;j+=i)p[j]=false;
- }
- }
- }
- int factors(int n){
- int c,m=1,i=2;
- if(p[n]==false){
- c=0;
- while(n%i==0){
- n=n/i;
- c++;
- }
- m=(c+1)*m;
- }
- i++;
- while(n!=1 && p[n]!=true){
- c=0;
- while(n%i==0){
- n=n/i;
- c++;
- }
- m=(c+1)*m;
- i=i+2;
- }
- if(n!=1)m=m*2;
- return m;
- }
- int main(){
- int t,g,a,b;
- memset(p,true,sizeof(p));
- sieve();
- scanf("%d",&t);
- while(t--){
- scanf("%d %d",&a,&b);
- g=__gcd(a,b);
- printf("%d\n",factors(g));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement