本文主要是介绍51Nod 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<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;
}
这篇关于51Nod 1284 2 3 5 7的倍数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!