• bzoj4292 [PA2015]Równanie


    [PA2015]Równanie

    Time Limit: 1 Sec Memory Limit: 256 MB

    Description

    对于一个正整数n,定义f(n)为它十进制下每一位数字的平方的和。现在给定三个正整数k,a,b,请求出满足a<=n<=b且k*f(n)=n的n的个数。

    Input

    第一行包含三个正整数k,a,b(1<=k,a,b<=10^18,a<=b)。

    Output

    输出一个整数,即满足条件的n的个数。

    Sample Input

    51 5000 10000

    Sample Output

    3

    HINT

    满足的3个n分别为7293,7854和7905。


    其实 $f(n)$ 很少,所以这是一道**题。 每个 $f(n)$ 有且仅对应一个数。就好了。 ```c++

    include<bits/stdc++.h>

    using namespace std;
    long long k, a, b;

    inline int lpl(long long t)
    {
    int ret = 0;
    while(t){
    ret += (t % 10) * (t % 10);
    t /= 10;
    }
    return ret;
    }

    int main()
    {
    scanf("%lld%lld%lld", &k, &a, &b);
    long long i, ans = 0;
    for(i = 0; i <= 1911 && i <= b / k; ++i){
    if(i * k >= a && lpl(i * k) * k == i * k) ans++;
    }
    cout << ans;
    return 0;
    }

    
    写数位dp的我真的很坚强。。。。
    然后就弃疗了。。。
    心如花木,向阳而生。
  • 相关阅读:
    sql基础笔记备忘
    论坛---挂掉的思考
    http response
    跑步肋骨下方疼
    Golang
    svn rollback: 恢复到上一版本
    中国时区
    crontab
    初识redis
    siege
  • 原文地址:https://www.cnblogs.com/LLppdd/p/9159153.html
Copyright © 2020-2023  润新知