您的位置:首页 > 其它

HDU-1333(分解素因数)

2012-08-14 15:28 260 查看
这个题目我都想死了,,做了整整一上午,当然包括看知识点,,

但其实这是一个比较水的题目..- -#

晕死了都..

注意那个if(flag)

耗费了无数精力才发现的...

贴出代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#define MAXN 100100001

int N;

int getsum(int x)
{
int sum=0;
while(x)
{
sum+=x%10;
x/=10;
}
return sum;
}

int main()
{
while(scanf("%d",&N),N)
{
for(int x=N+1;;x++)
{
int sum=getsum(x);
int temp=0;
int flag=x;
int cnt=0;
for(int i=2;i<=sqrt(flag*1.0);i++)
{
while(flag%i==0)
{
cnt++;
temp+=getsum(i);
flag/=i;
}
}
if(flag!=1)
temp+=getsum(flag);
if(sum==temp&&cnt!=0)
{
printf("%d\n",x);
break;
}
}
}
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: