题目
输出 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