BZOJ 4292: [PA2015]Równanie
2017-03-15 15:56
246 查看
[PA2015]Równanie
Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 416 Solved: 238
[Submit][Status][Discuss]
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 10000Sample Output
3HINT
满足的3个n分别为7293,7854和7905。转换枚举 f(n)*k=n 所以 f(f(n)*k)=f(n)
枚举 f(n)*k 即可
#include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <cmath> #include <algorithm> #include <iomanip> #define ll long long using namespace std; ll k,a,b; bool check(ll x) { ll rs=0,cnt=x; while(x){rs+=(x%10)*(x%10);x/=10;} if(rs==cnt/k)return true; return false; } int main() { scanf("%lld%lld%lld",&k,&a,&b); ll ans=0; for(int i=1;i<=1458;i++) { long long t=k*i; if(t<a||t>b)continue; if(check(t))ans++; } printf("%lld\n",ans); return 0; }
相关文章推荐
- BZOJ 4292 PA2015 Równanie 枚举
- BZOJ4292 [PA2015]Równanie
- 【PA2015】【BZOJ4292】Równanie
- BZOJ 4292: [PA2015]Równanie(转换枚举)
- BZOJ 4292 [PA2015]Równanie 水题
- 【bzoj4292】[PA2015]Równanie 枚举
- bzoj 4292: [PA2015]Równanie 暴力枚举
- BZOJ 4292([PA2015]Równanie-数学)
- bzoj 4292: [PA2015]Równanie
- 【bzoj4292】 [PA2015]Równanie 乱搞
- BZOJ 4292 [PA2015] Równanie - 数位&思维
- 【BZOJ4292】[PA2015]Równanie 暴力
- 【BZOJ】【P4292】【PA2015】【Równanie】【题解】【暴力】
- 【bzoj4292】[PA2015]Równanie 暴力
- 4292: [PA2015]Równanie
- BZOJ4292 : [PA2015]Równanie
- [bzoj4293][PA2015]Siano
- bzoj4291 [PA2015]Kieszonkowe
- 【PA2015】【BZOJ4293】Siano
- 【BZOJ】4293: [PA2015]Siano 线段树上二分