hdu 1333 Smith Numbers
来源:互联网 发布:藏文输入法软件下载 编辑:程序博客网 时间:2024/06/01 12:53
Problem Description
While skimming his phone directory in 1982, Albert Wilansky, a mathematician of Lehigh University, noticed that the telephone number of his brother-in-law H. Smith had the following peculiar property: The sum of the digits of that number was equal to the sum of the digits of the prime factors of that number. Got it? Smith’s telephone number was 493-7775. This number can be written as the product of its prime factors in the following way:
4937775 = 3 * 5 * 5 * 65837
The sum of all digits of the telephone number is 4+9+3+7+7+7+5= 42?, and the sum of the digits of its prime factors is equally 3+5+5+6+5+8+3+7= 42. Wilansky was so amazed by his discovery that he named this kind of numbers after his brother-in-law: Smith numbers.
As this observation is also true for every prime number, Wilansky decided later that a (simple and unsophisticated) prime number is not worth being a Smith number, so he excluded them from the definition.
Wilansky published an article about Smith numbers in the Two Year College Mathematics Journal and was able to present a whole collection of different Smith numbers: For example, 9985 is a Smith number and so is 6036. However,Wilansky was not able to find a Smith number that was larger than the telephone number of his brother-in-law. It is your task to find Smith numbers that are larger than 4937775!
The sum of all digits of the telephone number is 4+9+3+7+7+7+5= 42?, and the sum of the digits of its prime factors is equally 3+5+5+6+5+8+3+7= 42. Wilansky was so amazed by his discovery that he named this kind of numbers after his brother-in-law: Smith numbers.
As this observation is also true for every prime number, Wilansky decided later that a (simple and unsophisticated) prime number is not worth being a Smith number, so he excluded them from the definition.
Wilansky published an article about Smith numbers in the Two Year College Mathematics Journal and was able to present a whole collection of different Smith numbers: For example, 9985 is a Smith number and so is 6036. However,Wilansky was not able to find a Smith number that was larger than the telephone number of his brother-in-law. It is your task to find Smith numbers that are larger than 4937775!
Input
The input consists of a sequence of positive integers, one integer per line. Each integer will have at most 8 digits. The input is terminated by a line containing the number 0.
Output
For every number n > 0 in the input, you are to compute the smallest Smith number which is larger than n, and print it on a line by itself. You can assume that such a number exists.
Sample Input
49377740
Sample Output
4937775
#include <iostream>#include <stdio.h>#include <string.h>#include <math.h>using namespace std;const int MAX=10001;bool prime[MAX];int getsum(int x){ int sum=0; while (x) { sum+=x%10; x/=10; } return sum;}int main(){ prime[2]=true; int n; for (int i=3; i<MAX; i++) { if(i%2==0) { prime[i]=false; } else { prime[i]=true; } } for (int i=3; i<sqrt(MAX); i++) { if(prime[i]) { for (int j=2; j*i<MAX; j++) { prime[j*i]=false; } } } while (scanf("%d",&n) && n) { int m; while (n++) { int sum=0; m=n; for (int i=2; i<=sqrt(m); i++) { if(prime[i]) { if(m%i==0) { m/=i; int ans=getsum(i); sum+=ans; while(m%i==0) { m/=i; sum+=ans; } } } } if(m==n) { continue; } if(m>1) { sum+=getsum(m); } if(getsum(n)==sum) { printf("%d\n",n); break; } } } return 0;}
0 0
- hdu 1333 Smith Numbers
- 【HDU】 1333 Smith Numbers
- hdu 1333 Smith Numbers(暴力思路)
- hdu-1333 Smith Number
- Smith Numbers
- Smith Numbers
- Smith Numbers
- POJ 1142 Smith Numbers
- 1027: Smith Numbers
- zoj 1133 Smith Numbers
- zoj 1133 - Smith Numbers
- uva 10042 smith numbers
- POJ 1142 Smith Numbers
- poj 1142 Smith Numbers
- Smith Numbers hdu1333 素数
- poj 1142 Smith Numbers
- Poj 1142 Smith Numbers
- hdu1333/poj1142-Smith Numbers
- Python SMTPLIB
- Real-Time Compressive Tracking 论文笔记
- windows多执行绪代码及分析
- 架构师:一群善于沟通的技术领袖
- LCD帧缓存设备驱动
- hdu 1333 Smith Numbers
- LCD驱动的实现
- bash shell脚本之查看当前日期以及登陆用户
- 架构师:要成为百科全书式的智者
- C++指针心得
- bash shell脚本之查看系统环境变量
- TFT显示屏参数设置
- 数据结构第一章思维导图
- bash shell脚本之成员变量