欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

51Nod - 1284 2 3 5 7的倍数

程序员文章站 2022-03-03 11:35:48
...

给出一个数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>
using namespace std;
int main(void){
	
	long long int N,ans;
	long long int a,b,c,d,ab,ac,ad,bc,bd,cd;
     while( scanf("%lld",&N)!=EOF){ 
		ans = 0;
		a = N /2;
		b = N /3;
		c = N /5;
		d = N /7;
		
		ab = N/( 2 * 3);
		ac = N/( 2 * 5 );
		ad = N/( 2 * 7);
		bc = N/( 3 * 5);
		bd = N/( 3 * 7);
		cd = N/( 5 * 7 );
		long long int abc = N/( 2 *3 *5);
		long long int abd = N /( 2 *3*7);
		long long int acd = N/( 2 * 5*7);
		long long int bcd = N/( 3 * 5 * 7 );
		long long int abcd = N/( 2*3*5*7);
		ans = a+b+c+d -ab-ac-ad-bc-bd-cd+ abc+  abd+ acd +bcd -abcd ;
	 	ans = N- ans; 
		 printf("%lld\n",ans);
      }
 	return 0;
}

 

相关标签: ACM