读入 N ,求出 1..N 的范围内所有 2 或 3 或 5 的倍数一共有多少个?
输入数据
输入一个数 N(N≤100000)
输出数据
输出一个数,表示这样的数的个数
数据范围
N≤100000
样例:
输入:
10
输出:
8
代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n, count = 0;
cin >> n;
for(int i = 1; i <= n; i++) {
if(i % 2 == 0 || i % 3 == 0 || i % 5 == 0)
count++;
}
cout << count << endl;
return 0;
}
思路:
-
循环遍历 1−n ,对于每一个数判断其是否为 2,3,5 的倍数,如果是则计数加一。
本题还有更高效的数学方法,即:
n/2+n/3+n/5−n/6−n/10−n/15+n/30 。
出于训练循环的目的,我们只给出 while 循环的写法。
本文来源于51NOD,由小罐头甜编辑,若有侵权,请告知。

641

被折叠的 条评论
为什么被折叠?



