BZOJ 4292([PA2015]Równanie-数学)
2015-10-09 07:30
495 查看
对于一个正整数n,定义f(n)为它十进制下每一位数字的平方的和。现在给定三个正整数k,a,b,请求出满足a<=n<=b且k*f(n)=n的n的个数
已知三个正整数k,a,b(1<=k,a,b<=10^18,a<=b)
f(n)的取值范围很小,不超过1600
因此k*f(n)的取值有1600个,故n的取值亦然
只要把符合条件的n验证一遍就行
n=k∗t n=k*t
k∗f(n)=n k*f(n)=n
k∗f(kt)=kt k*f(kt)=kt
f(kt)=t≤1600 f(kt)= t \leq 1600
已知三个正整数k,a,b(1<=k,a,b<=10^18,a<=b)
f(n)的取值范围很小,不超过1600
因此k*f(n)的取值有1600个,故n的取值亦然
只要把符合条件的n验证一遍就行
n=k∗t n=k*t
k∗f(n)=n k*f(n)=n
k∗f(kt)=kt k*f(kt)=kt
f(kt)=t≤1600 f(kt)= t \leq 1600
#include<bits/stdc++.h> using namespace std; #define For(i,n) for(int i=1;i<=n;i++) #define Fork(i,k,n) for(int i=k;i<=n;i++) #define Rep(i,n) for(int i=0;i<n;i++) #define ForD(i,n) for(int i=n;i;i--) #define ForkD(i,k,n) for(int i=n;i>=k;i--) #define RepD(i,n) for(int i=n;i>=0;i--) #define Forp(x) for(int p=Pre[x];p;p=Next[p]) #define Forpiter(x) for(int &p=iter[x];p;p=Next[p]) #define Lson (o<<1) #define Rson ((o<<1)+1) #define MEM(a) memset(a,0,sizeof(a)); #define MEMI(a) memset(a,127,sizeof(a)); #define MEMi(a) memset(a,128,sizeof(a)); #define INF (2139062143) #define F (100000007) #define pb push_back #define mp make_pair typedef long long ll; ll mul(ll a,ll b){return (a*b)%F;} ll add(ll a,ll b){return (a+b)%F;} ll sub(ll a,ll b){return (a-b+llabs(a-b)/F*F+F)%F;} void upd(ll &a,ll b){a=(a%F+b%F)%F;} ll f(ll x){ ll ans=0; while (x) ans+=(x%10)*(x%10),x/=10; return ans; } int main() { // freopen("bzoj4292.in","r",stdin); // freopen(".out","w",stdout); ll k,a,b; cin>>k>>a>>b; ll ans=0; Rep(i,1600) { if (a<=k*i&&i<=b/k) if (f(k*i)==i) ++ans; } cout<<ans<<endl; return 0; }
相关文章推荐
- NetBSD 7.0 发布
- spring @AspectJ @annotation
- Python标准函数库_sys/random详解
- xcode 连接 github
- Xcode调试非异常导致崩溃的程序
- Xcode调试非异常导致崩溃的程序
- Xcode调试非异常导致崩溃的程序
- Xcode中的全局异常断点
- Xcode中的全局异常断点
- Xcode中的全局异常断点
- BOT EPC EMC
- C#学习之打开本地浏览器
- 排序_插入排序
- linux 下进程通讯详解
- [Leetcode]Set Matrix Zeroes
- Homogenous Points(齐次坐标点)到底是什么
- *LeetCode-First Missing Positive
- Implement Queue using Stacks 解答
- Python 冒泡排序算法探讨与指派运算替代方法的实现
- 3d max插件的基本知识和安装方法