题目

输出 1 到 100 之间所有能够同时被 3 和 5 整除的正整数。

输入格式:无键盘输入。

输出格式:按升序输出所有满足条件的数字,每个数字后跟一个空格,最后换行。

数据范围与约定:区间固定为 [1, 100]。

思路与算法

1. 公倍数数学化简
一个数同时能被 3 和 5 整除,等价于能被它们的最小公倍数 15 整除(因为 3 和 5 互质)。直接判定 i % 15 == 0 比 i % 3 == 0 && i % 5 == 0 计算更少。

2. 循环遍历
通过 for (int i = 1; i <= 100; i++) 遍历区间,满足条件时格式化输出。

完整程序

#include <stdio.h>

int main(void)
{
    for (int i = 1; i <= 100; i++) {
        // 3 和 5 互质,能同时整除 3 和 5 等价于能被其最小公倍数 15 整除
        if (i % 15 == 0) {
            printf("%d\n", i);
        }
    }
    return 0;
}

运行示例

输出:

15
30
45
60
75
90