Hihocoder #1284 : 機會渺茫

時間限制:5000ms
單點時限:1000ms
內存限制:256MB

描述

小Hi最近在追求一名學數學的女生小Z。小Z其實是想拒絕他的,但是找不到好的說辭,於是提出了這樣的要求:對於給定的兩個正整數N和M,小Hi隨機選取一個N的約數N',小Z隨機選取一個M的約數M',如果N'和M'相等,她就答應小Hi。

小Z讓小Hi去編寫這個隨機程序,到時候她review過沒有問題了就可以抽籤了。但是小Hi寫着寫着,卻越來越覺得機會渺茫。那麼問題來了,小Hi能夠追到小Z的機率是多少呢?

輸入

每個輸入文件僅包含單組測試數據。

每組測試數據的第一行爲兩個正整數N和M,意義如前文所述。

對於40%的數據,滿足1<=N,M<=106

對於100%的數據,滿足1<=N,M<=1012

輸出

對於每組測試數據,輸出兩個互質的正整數A和B(以A分之B表示小Hi能夠追到小Z的機率)。

樣例輸入
3 2
樣例輸出
4 1
import java.util.*;
public class Main
{
	
	 public static void main(String[] args)
	 {
	long count1=0,count2=0,count3=0;
	  long a,b;
	  Scanner sc=new Scanner(System.in);
	  a=sc.nextLong();
	  b=sc.nextLong();
      count1=f(a);
      count2=f(b);
      count3=f(gcd(a,b));
      long c=gcd(count1*count2,count3);
      System.out.print(count1*count2/c+" "+count3/c);
	 }
	static long gcd(long a,long b)
	 {
		 if(a%b==0)
			 return b;
		 return gcd(b,a%b);
	 }
	static long f(long num)
	{
		long ans=0;
		for(long i=1;i*i<=num;i++)
		{
			if(num%i==0)  {ans++;
			if(i*i!=num) ans++;}
		}
		return ans;
	}
}
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章