2000 - 植树节A
时间限制 : 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); } } }