x的增量序列中所有的数都不是自数,从筛子中筛去即可
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<queue>
#include<ctype.h>
#include<stack>
#include<math.h>
#include <string>
#include<algorithm>
#include <iterator>
using namespace std;
typedef unsigned long long ULL;
int g[10001];
int mysum(int n)
{
int sum=0;
if(n<10)
return n;
while(n)
{
sum+=n%10;
n/=10;
}
return sum;
}
void fun(int n)
{
if(n>10000)
return ;
int next;
next=n+mysum(n);
if(next<10000&&g[next]==next)
g[next]=n;
fun(next);
return;
}
int main()
{
for(int i=1;i<10000;i++)
g[i]=i;
for(int i=1;i<10000;i++)
fun(i);
for(int i=1;i<10000;i++)
if(g[i]==i)
printf("%d\n",i);
return 0;
}
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<queue>
#include<ctype.h>
#include<stack>
#include<math.h>
#include <string>
#include<algorithm>
#include <iterator>
using namespace std;
typedef unsigned long long ULL;
int book[10001];
int mysum(int n)
{
int sum=0;
if(n<10)
return n;
while(n)
{
sum+=n%10;
n/=10;
}
return sum;
}
void fun(int n)
{
if(n>10000)
return;
int next=n+mysum(n);
if(next<10000&&book[next]==0)
book[next]=1;
fun(next);
}
int main()
{
for(int i=1;i<10000;i++)
fun(i);
for(int i=1;i<10000;i++)
if(book[i]==0)
printf("%d\n",i);
return 0;
}