#P1552. Doubles

Doubles

问题描述

作为算术能力训练计划的一部分,您的学生将获得随机生成的数字列表(每个列表包含221515个不同的正整数),需要计算每个列表中有多少项是其他某项的两倍。您需要编写一个程序来自动批改答案。例如,给定列表:

1 4 3 2 9 7 18 221\ 4\ 3\ 2\ 9\ 7\ 18\ 22

程序应输出33,因为:

  • 2211的两倍(2=1×22 = 1×2
  • 4422的两倍(4=2×24 = 2×2
  • 181899的两倍(18=9×218 = 9×2

输入格式

  • 输入包含多行数字列表
  • 每行表示一个列表,以00结尾(00不计入列表)
  • 文件末尾以单独一行1-1标记
  • 每个列表满足:
    • 包含2152-15个不同的正整数
    • 所有数字99\leq 99
  • 示例输入包含33个列表,某些列表可能不存在满足条件的数对

输出格式

  • 对每个列表输出一行,表示满足"某数是其他数两倍"的项数

输入输出示例

输入:

1 4 3 2 9 7 18 22 0
2 4 8 10 0
7 5 11 13 1 3 0
-1

输出:

3
2
0

计算规则

对于列表中的每个数字xx,检查是否存在另一个数字yy满足:

x=2yx = 2y

统计所有满足此条件的xx的数量(注意:每个xx只需找到一个对应的yy即可计入结果)