#B4184. [中山市赛 2024] 除法运算

[中山市赛 2024] 除法运算

题目描述

Jimmy 开始学习除法啦!一开始他学习了余数为 00 的除法(也就是我们常说的整除),后来又学习了余数不为 00 的除法,所以 Jimmy 对被除数、除数、商、余数这些概念都已经了如指掌了。

有一天,他忽然思考起一个问题——给一个正整数 nn 作为被除数,除数 kk 可以取任意正整数,那么会有多少互不相同的商呢?

例如:被除数 n=5n = 5,无论除数 kk 如何变化,商最多也只有 44 个不同的值,分别为 0,1,2,50, 1, 2, 5。这是因为:

  • 5÷6=055 \div 6 = 0 \dots 5
  • 5÷5=105 \div 5 = 1 \dots 0
  • 5÷4=115 \div 4 = 1 \dots 1
  • 5÷3=125 \div 3 = 1 \dots 2
  • 5÷2=215 \div 2 = 2 \dots 1
  • 5÷1=505 \div 1 = 5 \dots 0

Jimmy 作为一个天才,对这么简单的问题自然是手到擒来,于是他拿着这个问题向你发起了挑战。你能回答这个问题吗?

输入格式

本题输入有多组测试数据。

第一行一个整数 TT,表示测试数据的组数。

接下来 TT 行,每行一个整数 nn,表示被除数。

输出格式

输出共 2×T2 \times T 行,对于每组测试数据输出 22 行:

第一行输出一个整数 mm,表示商有 mm 个不同的值;

第二行输出 mm 个整数,分别表示 mm 个不同的商,按从小到大的顺序输出。

2
5
11
4
0 1 2 5
6
0 1 2 3 5 11

提示

数据范围

  • 对于 50% 的数据,保证 1n1051 \leq n \leq 10^5
  • 对于 100% 的数据,保证 1T10 1 \leq T \leq 101n1091 \leq n \leq 10^9