2840302_ac_31ms_360k.cc
来自「做的POJ的一些题目」· CC 代码 · 共 91 行
CC
91 行
#include<stdio.h>
#include <iostream>
#include<math.h>
using namespace std;
int c;
int num[300];
int k=0,sum=0;
int prime[10000],x=1;
void isprime(int n)
{
int i=0;
while(i<x && prime[i]<=sqrt(n))
{
if(n%prime[i]==0)
return;
i++;
}
prime[x++]=n;
}
void setprime()
{
for(int i=3;i<=10000;i++)
isprime(i);
}
void fenjie(int n)
{
int i=0;
while(true)
{
if(i==x || prime[i]==n)
break;
if(n%prime[i]==0)
{
n=n/prime[i];
num[k++]=prime[i];
}
else
i++;
}
num[k]=n;
}
int qiuhe(int b[],int n)
{
sum=0;
for(int i=0;i<=n;i++)
do
{
sum+=b[i]%10;
b[i]=b[i]/10;
}while(b[i]);
return sum;
}
int qiuhe1(int b)
{ sum=0;
do
{
sum+=b%10;
b=b/10;
}while(b);
return sum;
}
int main()
{
prime[0]=2;
setprime();
int n;
scanf("%d",&n);
while(n)
{
while(n)
{ k=0;
n++;
for(int i=0;i<300;i++)
num[i]=0;
fenjie(n);
if(k==0)
continue;
c=qiuhe(num,k);
if(c==qiuhe1(n))
{
cout<<n<<endl;
break;
}
}
scanf("%d",&n);
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?