牛客练习赛111 C简单的数学题

题目链接
在这里插入图片描述
示例1
输入
3
15 7
12 12
6 1
输出
2
6
1
说明

第一问,m=15,x=7,显然y=x=7满足。 y=6时,对于k=1,2时kx≤m且ky≤m。 kx>m且ky>m。
可以证明没有其他正整数y与x有关于m的等价关系。

解题思路:

主要是找y值的上下界
可以通过数学式子分析严苛关系
1.当kx<=m时候 k<=m/x
要ky<=m 那么 y<=m/k 即 y<=m/k<=m/(m/x)
2.当kx>m时候 k>m/x
要ky>m 那么 y>m/k 即 y>m/(m+x+1)

#include <iostream>
#define int long long
using namespace std;
void solve()
{
    int m,x;
    cin>>m>>x;
    int ans=0;
    for(int i=m/(m/x+1)+1;i<=m/(m/x);i++){
        ans++;
    }
    cout<<ans<<endl;
}
signed main()
{
    int _ = 1;
    cin>>_;
    while(_--)
        solve();
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值