2000 - 植树节A

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

植树节,小明和小华在菜园子里种树,小明种一排,小华种一排。后来,他们希望数一下各自都种了多少棵树,小明和小华就约定k棵k棵的数,但是他们惊奇的发现,数到最后,剩下的树都相等。这时,无语想,如果小明种了a棵树,小华种了b棵树,那么k棵k棵的数后剩下的树的数量都一样,那么满足这个条件的k有多少个?

题目输入

先输入T,表示输入T个测试数据,对于每个测试数据,输入只有两个整数:a,b,意义见题目内容,其中0<a,b<100000

题目输出

对于每个测试数据,输出一行,一个数字,表示k的数量。

输入/输出样例

输入格式

1
6 2

输出格式

3

Java解答

import java.util.*;

public class Main{
    public static void main(String args[]){
        Scanner cin=new Scanner(System.in);
        int T=cin.nextInt();
        while(T-->0){
            int a=cin.nextInt();
            int b=cin.nextInt();
            if(a==b){
                System.out.println(a);
                continue;
            }
            a=Math.abs(a-b);
            int ans=1;
            for(int i=2;i*i<=a;i++){
                if(a%i==0){
                    int tmp=1;
                    while(a%i==0){
                        a/=i;
                        tmp++;
                    }
                    ans*=tmp;
                }
            }
            if(a!=1)
                ans*=2;
            System.out.println(ans);
       }
    }
}