#1189. 分糖果游戏

分糖果游戏

题目背景

小可和小达有一堆糖果🍬,他们玩一个特别的分配游戏。规则是:每次可以把一堆糖果分成两小堆,但必须满足两堆糖果的数量相差正好为 kk

题目描述

一开始,他们有 nn 颗糖果🍬放在桌上(1n1091 \leq n \leq 10^9)。游戏过程如下:

  1. 如果桌上有一堆糖果有 mm 颗,并且可以找到两个正整数 aabb 使得:

    • a+b=ma + b = m
    • a>0a > 0b>0b > 0
    • aabb 的差是 kk

    那么他们就把这堆糖果分成两堆,一堆 aa 颗,一堆 bb 颗。

  2. 分出来的每堆糖果又可以继续按照这个规则再分。

他们会一直分,直到桌上的所有糖果堆都不能再分为止。

请问最后桌上有多少堆糖果?

输入格式

输入一行,两个整数 nnkk,用空格隔开。

输出格式

输出一行,一个整数,表示最后糖果堆的数量。

样例

6 2
3
16 8
4
7 2
1
10 2
5

提示

样例1解释

  6
 / \
2   4
   / \
  1   3

一开始:1堆,6颗

第一次分:分成 2颗 和 4颗 → 现在有2堆

第二次分:4颗的可以分成 1颗 和 3颗 → 现在有3堆

剩下的:2颗、1颗、3颗都不能再分

数据范围

  • 1n1091 \leq n \leq 10^9
  • 1k10001 \leq k \leq 1000