poj 1142 Smith Numbers
来源:互联网 发布:星际穿越知乎 编辑:程序博客网 时间:2024/05/17 01:32
分类:其他 难度:1.5
题意:将一个数各个位的和,与因式分解的每个因数各个位的和,如相等,为smith数,4937775= 3*5*5*65837,4+9+3+7+7+7+5= 42, 3+5+5+6+5+8+3+7=42。求大于给出的n的最小smith数。因式分解,map记录因式分解结果,map[因数]=出现次数。
#include<cstdio>#include<map>using namespace std;map<int,int>::iterator it;int numsum(int a){int ans=0;for(;a;a/=10){ans += a%10;}return ans;}int facsum(int a){int i,sum=0;map<int,int> fac;int b=a;for(i=2; i*i<=b; i++){if(b%i==0){while(b%i==0){it=fac.find(i);if(it == fac.end()){fac[i] = 1;}else{fac[i]++;}b /= i;}}}if(b == a)return 0;if(b > 1) fac[b] = 1;for(it=fac.begin(); it!=fac.end(); it++){sum += numsum(it->first) * it->second;}return sum;}bool check(int a){int sum1 = numsum(a);int sum2 = facsum(a);//printf("%d %d %d\n",a,sum1,sum2);if(sum1 == sum2)return true;return false;}int main(){int a;while(scanf("%d",&a) && a>0){while(1){a++;if(check(a)){printf("%d\n",a);break;}}}}
- POJ 1142 Smith Numbers
- POJ 1142 Smith Numbers
- poj 1142 Smith Numbers
- poj 1142 Smith Numbers
- Poj 1142 Smith Numbers
- poj 1142 Smith Numbers
- POJ 1142 Smith Numbers
- poj 1142 Smith Numbers
- POJ-----1142---Smith Numbers
- poj 1142 Smith Numbers 筛法
- POJ 1142 Smith Numbers 笔记
- ZOJ 1133 Smith Numbers && POJ 1142 Smith Numbers
- zoj 1133 || poj 1142 Smith Numbers
- ZOJ 1133 & POJ 1142 Smith Numbers
- UVa 10042 && POJ 1142 - Smith Numbers
- poj 1142Smith Numbers(解题报告)
- [暴力分治]POJ 1142 Smith Numbers
- poj 1142——Smith Numbers
- 几天学习C++的一些小总结1
- 使用TextRank实现的关键字提取
- HDU1201:18岁生日
- 关于runtime类
- 树状数组(2)
- poj 1142 Smith Numbers
- poj 3278 Catch That Cow
- Oracle SQL Tuning知识
- 从Slice_Header学习H.264(三.3)--相关细节之 FMO
- JDBC 向SQL Server2005插入中文报错?
- hdu 1677 (LIS+贪心)
- 【程序33】学习gotoxy()与clrscr()函数(TC实现版本)
- 如何切换使用spfile和pfile
- Eclipse快捷键大全