solution1
#include<iostream>
using namespace std;
const int maxn = 1e5;
int flag[maxn] = {0};
int main(){
int n, x, count = 0;
scanf("%d", &n);
for(int i = 1; i <= n; i++){
x = i / 2 + i / 3 + i / 5;
if(!flag[x]){
count++;
flag[x] = 1;
}
}
printf("%d", count);
return 0;
}
solution2
需要去重,联想到可以自动去重的set
#include<iostream>
#include<set>
using namespace std;
int main(){
int n;
set<int> st;
scanf("%d", &n);
for(int i = 1; i <= n; i++){
st.insert(i / 2 + i / 3 + i / 5);
}
printf("%d", st.size());
return 0;
}