您的位置:首页 > 其它

Pascal程序练习-狼找兔子

2011-10-02 14:19 211 查看
狼找兔子

时间限制: 10000ms内存限制: 1024kB

描述

一座山周围有n个洞,顺时针编号为0,1,2,...n-1.

而一只狼从0号洞开始,顺时针方向计数,每遇到m个洞就进洞找兔子.例如n=5,m=3,狼经过的洞依次为0,3,1,4,2,0.那么兔子有没有幸免的机会?如果有,该藏在哪儿?
输入

n m (<2.1*10^9)

输出

若兔子有幸免的机会则输出所有可以藏身的洞,输出洞的个数,反之,输出-1。

样例输入

5 1

样例输出

-1

参考代码

program psj004;
var
n,m,v:LongInt;
function max(a,b:LongInt):LongInt;
begin
begin
if a > b then
max := a
else
max := b
end;
end;
function min(a,b:LongInt):LongInt;
begin
begin
if a > b then
min := b
else
min := a
end;
end;
function gcd(a,b:LongInt):LongInt;
var
mx,mn,mm:LongInt;
begin
mx := max(a,b);
mn := min(a,b);
mm := mx mod mn;
begin
if mm = 0 then
gcd := mn
else
gcd := gcd(mm,mn)
end;
end;
begin
readln(n,m);
v := n - n div gcd(n,m);
begin
if v = 0 then
writeln(-1)
else
writeln(v)
end;
end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: