原题![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cd88636925f1f80eecccff9d6ea3300c.png)
题目大意
不算3和5的倍数,然后找到第n个数字
题目分析
就这样枚举过去肯定超时,所以就要想想怎么加快速度,作为一个蒟蒻,我用了一个很蠢的办法,反过来枚举,所以我用了个容斥原理找到上限往下枚举就完事了
代码
#include<cstdio>
int main()
{
int n;
scanf("%d",&n);
int m = n << 1;
m = m - m / 3 - m / 5 + m / 15;//m是到n*2时喊过的数字
int ans = (n << 1) + 1;
do
{
--ans;
while (ans % 3 == 0 or ans % 5 == 0) --ans;
}while (m-- > n);
printf("%d",ans);
return 0;
}