1284 2 3 5 7的倍数
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注
给出一个数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 <iostream>
#include <cmath>
#include <cstring>
#include <stdio.h>
#include <algorithm>
#include <iomanip>
using namespace std;
int main()
{
long long n;
while(cin>>n)
{
long long a[5],b[5];
b[1]=2;b[2]=3;b[3]=5;b[4]=7;
a[0]=n/2;
a[1]=n/3;
a[2]=n/5;
a[3]=n/7;
long long x=0,y=0;
int i,j;
for(i=0;i<4;i++)
{
x+=a[i];
for(j=1;j<=i;j++)
{
y+=a[i]/b[j];
}
}
y-=a[2]/6;
y-=a[3]/6;
y-=a[3]/15;
y-=a[3]/10;
y+=a[3]/30;
cout<<n-(x-y)<<endl;
}
return 0;
}