"""补充练习:整除、因数、倍数、取余与同余。 输入:正整数 d、整数 n、正整数 m。判断 d 是否整除 n,列出 d 的因数及前五个正倍数, 并判断 d 与 n 是否模 m 同余。 学习说明: - 若 n % d == 0,表示 d 整除 n;否则不能整除。 - 因数是能整除 d 的正整数,所以只需检查 1 到 d。 - d * k(k 为正整数)是 d 的倍数;本题列出前五个。 - n % m 是余数;两个数对 m 同余,等价于它们余数相同。 - 列表解析把满足条件的因数收集成一个列表。 """ d, n, m = map(int, input().split()) if d <= 0 or m <= 0: raise ValueError("d 和 m 必须为正整数") print("divisible:", n % d == 0) factors = [value for value in range(1, d + 1) if d % value == 0] print("factors:", *factors) print("first five multiples:", *(d * k for k in range(1, 6))) print("remainder:", n % m) print("congruent:", d % m == n % m)