1 #include<cstdio> 2 int num[6] = {2,3,5,7}; 3 int n; 4 int solve() 5 { 6 int ans = 0; //是那四个数的倍数的数的数量 7 for (int i = 1 ; i < (1<<4) ; i++) //选数 8 { 9 int ant = 0; //选中数的数量 10 int k = 1; //记录选中数字的乘积 11 for (int j = 0 ; j < 4 ; j++) 12 { 13 if (i & (1<<j)) //检测第j个数有没有被选中 14 { 15 ant++; 16 k *= num[j]; 17 } 18 } 19 if (ant & 1) //ant % 2 == 1 表示奇数 20 ans += n / k; 21 else 22 ans -= n / k; 23 } 24 return ans; 25 } 26 int main() 27 { 28 scanf ("%d",&n); 29 printf ("%d ",n-solve()); 30 // printf("**%d** ", 1<<3); 31 return 0; 32 } 33 /* 34 4 = 2^4 = 16 35 36 2 3 5 7 37 0 0 0 0 38 0 0 0 1 39 0 0 1 0 40 ...... 41 1 1 1 1 42 */