zoukankan      html  css  js  c++  java
  • 1284 2 3 5 7的倍数

    给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。

    Input

    输入1个数N(1 <= N <= 10^18)。

    Output

    输出不是2 3 5 7的倍数的数共有多少。

    Input示例

    10

    Output示例

    1

    容斥原理,简单暴力

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main()
    {
        long long n;
      long long a[20];
     while(scanf("%lld",&n)!=EOF)
     {
      memset(a,0,sizeof(a));
      a[0]=n/2;
      a[1]=n/3;
      a[2]=n/5;
      a[3]=n/7;
      a[4]=n/(2*3);
      a[5]=n/(2*5);
      a[6]=n/(2*7);
      a[7]=n/(3*5);
      a[8]=n/(3*7);
      a[9]=n/(5*7);
      a[10]=n/(2*3*5);
      a[11]=n/(3*5*7);
      a[12]=n/(2*3*7);
      a[13]=n/(2*5*7);
      a[14]=n/(2*3*5*7);
      /*for(int i=0;i<15;i++)
      {
       printf("%d ",a[i]);
      }*/
     // printf(" ");
      long long  ans=n-a[0]-a[1]-a[2]-a[3]+a[4]+a[5] +a[6]+a[7]+a[8]+a[9]-a[10]-a[11]-a[12]-a[13]+a[14];
      printf("%lld ",ans);
     }

  • 相关阅读:
    46. 全排列
    90. 子集 II
    289. 生命游戏
    844. 比较含退格的字符串
    1266. 访问所有点的最小时间
    707. 设计链表
    DOM 关于dom的
    插件库
    浏览器判断
    FTP 客户端安装
  • 原文地址:https://www.cnblogs.com/NaCl/p/9580216.html
Copyright © 2011-2022 走看看