牛客2019国庆七天乐day05 G_2017

牛客2019国庆七天乐day05 G_2017

题意

x属于第一个区间, y属于第二个区间, 问有满足 x乘y是2017的倍数 的个数

题解

代码

#include <bits/stdc++.h> 
using namespace std; 
#define rg register 
#define sc scanf 
#define pf printf 
typedef long long ll;


int main ( ) {  // freopen( "F:\\in\\.txt" , "r" , stdin ); 

	ll a,b,c,d;

	while( cin >> a >> b >> c >> d ){
		
		ll e= b/2017-(a-1)/2017; // 第一个区间内能被2017整除的数的个数
		ll f= d/2017-(c-1)/2017; // 第二个区间

		ll g= e*(d-c+1); // 集合A, 其中存的是第一区间2017的倍数*第二区间长度
						// 也就是说, 存的是 是2017倍数的x乘y 有几对
		ll h= f*(b-a+1); // 集合B

		ll k = g+h-e*f;
		
		cout << k << endl;

		// cout << (  (b-a+1)/2017*(d-c+1) // 数学除法和计算机除法不一样
		// 			+(d-c+1)/2017*(b-a+1)
		// 			-(b-a+1)/2017*(d-c+1)/2017    ) << endl;
	}




	return 0 ; 
} 
// x属于第一个区间, y属于第二个区间, 问有满足 x乘y是2017的倍数 的个数

// 1 2017 1 2016
// 1 1000000000 1 1000000000

// 2016
// 991324197233775

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值