#3995. 取数问题(takenumber)

取数问题(takenumber)

问题描述

任意给出正整数n和k,例如n=16,k=4,然后按下列方法取数:

  • 第一次取1,取数后的余数为16-1=15
  • 第二次取2,取数后的余数为15-2=13
  • 第三次取4,取数后的余数为13-4=9
  • 第四次取8,取数后的余数为9-8=1
  • 当第五次取数时,因为余数为1,不够取(要取16),此时作如下处理:余数1+k(4)=5,再从1开始 取。
  • 第五次取1,取数后的余数为5-1=4
  • 第六次取2,取数后的余数为4-2=2
  • 当第七次取数时,因为余数为2,不够取(要取4),此时作如下处理:余数2+k(4)=6,再从1开始 取。
  • 第七次取1,取数后的余数为6-1=5
  • 第八次取2,取数后的余数为5-2=3第九次要取4,但不够取,余数3+k(4)=7,继续取。
  • 第九次取1,取数后的余数为7-1=6
  • 第十次取2,取数后的余数为6-2=4
  • 第十一次取4,取数后的余数为4-4=0,正好取完。

由此可见,当n=16,k=4时,按上面方法11次才能正好取完。

输入格式

输入一行两个整数,分别表示n和k。

输出格式

若能取完,输出“OK”及取数的次数(中间用一个空格隔开);若永远不能取完,输出“ERROR”。

样例

54945 36904
OK 442156

数据范围

0k<n10000000≤k<n≤1000000

来源

  • 信息学奥赛之数学一本通
  • stong9070整理