很好玩 就是求出总的,然后刷选出公共的就好了
题目描述
给出一个数n,求1到n中,有多少个数不是2 5 11 13的倍数。
输入描述:
本题有多组输入 每行一个数n,1<=n<=10^18.
输出描述:
每行输出输出不是2 5 11 13的倍数的数共有多少。
示例1
输入
15
输出
4
说明
1 3 7 9
#include <iostream> using namespace std; long long n,num,a,b,c,d,ab,ac,ad,bc,bd,cd,abc,abd,bcd,acd,abcd; int main() { while(cin>>n){ num=0; a=n/2; b=n/5; c=n/11; d=n/13; ab=n/10; ac=n/22; ad=n/26; bc=n/55; bd=n/65; cd=n/(11*13); abc=n/110; abd=n/130; acd=n/(2*11*13); bcd=n/(5*11*13); abcd=n/(2*5*11*13); num=a+b+c+d-ab-ac-ad-bc-bd-cd+abc+abd+acd+bcd-abcd; cout<<n-num<<endl; } return 0; }未来的我一定会感谢正在努力的现在的我!