每日一道題2014 7 23

2022-05-23 20:30:11 字數 1219 閱讀 9284

10015 - hankson的趣味題

time limit: 1000ms

memory limit: 65535kb

description

hanks 博士是bt (bio-tech,生物技術) 領域的知名專家,他的兒子名叫hankson。現在,剛剛放學回家的hankson 正在思考乙個有趣的問題。

今天在課堂上,老師講解了如何求兩個正整數c1 和c2 的最大公約數和最小公倍數。現在hankson 認為自己已經熟練地掌握了這些知識,他開始思考乙個「求公約數」和「求公倍數」之類問題的「逆問題」,這個問題是這樣的:已知正整數a0,a1,b0,b1,設某未知正整數x 滿足:

1. x 和a0 的最大公約數是a1;

2. x 和b0 的最小公倍數是b1。

hankson 的「逆問題」就是求出滿足條件的正整數x。但稍加思索之後,他發現這樣的x 並不唯一,甚至可能不存在。因此他轉而開始考慮如何求解滿足條件的x 的個數。請你幫助他程式設計求解這個問題。

input

第一行為乙個正整數n,表示有n 組輸入資料。接下來的n 行每行一組輸入資料,為四個正整數a0,a1,b0,b1,每兩個整數之間用乙個空格隔開。輸入資料保證a0 能被a1 整除,b1 能被b0 整除。

output

共n 行。每組輸入資料的輸出結果佔一行,為乙個整數。對於每組資料:若不存在這樣的x,請輸出0;若存在這樣的 x,請輸出滿足條件的x 的個數。

sample input

241 1 96 288

95 1 37 1776

sample output62

hint

參考:思路:動態陣列,輾轉相除

結果:oj:system error  

個人:樣例測試成功

**:

#includeusing

namespace

std;

int bei(int x,int

y)

a =x;

b =y;

while(b != 0

)

return x*y/a;

}int check(int a0,int a1,int b0,int

b1)

return

num;

}void

main()

for(int l=0;l)

cout

}

每日一道演算法題

no.1 設指標變數fron t表示鏈式佇列的隊頭指標,指標變數rear表示鏈式佇列的隊尾指標,指標變數s指向將要入佇列的結點x,則入佇列的操作序列為 a.front next s front s b.s next rear rear s crear next s rear s d.s next f...

每日一道演算法題

no.1 若有 18 個元素的有序表存放在一維陣列 a 19 中,第乙個元素放 a 1 中,現進行二分查詢,則查詢 a 3 的比較序列的下標依次為 a.1,2,3 b.9,5,2,3 c.9,5,3 d.9,4,2,3 答案 d.第一次查詢,隊首為下標1,隊尾下標18,所以是 1 18 2 9 第二...

每日一道Linux題

no.1 以下的命令得在 自動執行 06 03 3 lp usr local message mail s server message root a.每週三06 03分 b.每週六03 03分 c.每週三03 06分 d.每週六03 06分 答案 c 使用crontab命令編輯 分 時 日 月 周...