7_13_P题 Hack it!(数学)

7_13_P题 Hack it!


简单题意

f(x) ,是x每一位上的数之和,求一个区间l,r,使 ri=lf(i) mod n=0 , n为输入

思路

很显然 f(1018+x)f(x)=1
所以有 1018+xi=xf(i)=1018i=1f(i)+xi=1f(1018+i)f(i)
整理得 1018+xi=xf(i)=1018i=1f(i)+x
sum=1018i=1f(i)
则有 1018+xi=xf(i)=sum+x
x=nsum mod nmod n
则解就是 [1+x,1018+x]

代码

Python

n = int(input())
r = 45*18*10**17;
l = n-r%n
r = l +10**18-1
print(l,r)

CPP

#include <iostream>

using namespace std;

typedef long long ll;
const ll maxn = 1e17;
int main (){
    ll n;
    cin >>n;
    ll l = n - 9LL*(5LL*(9LL*(2LL*maxn%n)%n)%n)%n;
    ll r = l+1e18-1;
    cout << l <<" "<<r <<endl;
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值