1725数的量产

#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
const long long POW=839193483529;
void s2BIG(string s,int a[])
{
	int len=s.size();
	for(int i=1;i<=len;i++)
	a[i]=s[len-i]-'0';
	a[0]=len;
}
void printBIG(int a[])
{
	int len=a[0];
	for(int i=len;i>=1;i--)
	cout<<a[i];
}
void addBIG(int a[],int b[],int c[])
{
	int lc=max(a[0],b[0]),u=0;
	for(int i=1;i<=lc;i++)
	{
		int t=u;
		if(i<=a[0]) t+=a[i];
		if(i<=b[0]) t+=b[i];
		c[i]=t%10;
		u=t/10;
	}
	if(u>0) c[++lc]=u;
	c[0]=lc;
}
void subBIG(int a[],int b[],int c[])
{
	int lc=a[0],u=0;
	for(int i=1;i<=lc;i++)
	{
		int t=a[i]-u;
		if(i<=b[0]) t-=b[i];
		if(t<0)
		{
			c[i]=t+10;
			u=1;
		}
		else
		{
			c[i]=t;
			u=0;
		}
	}
	while(c[lc]==0&&lc>1) lc--;
	c[0]=lc;
}
bool cmpBIG(int a[],int b[])
{
	if(a[0]!=b[0]) return a[0]<b[0];
	for(int i=a[0];i>=1;i--)
	{
		if(a[i]!=b[i]) return a[i]<b[i];
	}
	return false;
}
void mulBIG(int a[],int b,int c[])
{
	int len=a[0],u=0;
	for(int i=1;i<=len;i++)
	{
		long long t=1ll*a[i]*b+u;
		c[i]=t%10;
		u=t/10;
	}
	while(u>0)
	{
		c[++len]=u%10;
		u/=10;
	}
	while(c[len]==0&&len>1) len--;
	c[0]=len;
}
void divBIG(int a[],int b,int c[])
{
	int len=a[0],r=0;
	for(int i=len;i>=1;i--)
	{
		long long t=1ll*r*10+a[i];
		c[i]=t/b;
		r=t%b;
	}
	while(c[len]==0&&len>1) len--;
	c[0]=len;
}
bool checkBIG(int a[])
{
	for(int i=1;i<=a[0];i++)
	{
		if(a[i]!=1&&a[i]!=2&&a[i]!=5&&a[i]!=7)
		return false;
	}
	return true;
}
int a[1000005];
int b[1000005];
int main()
{
	s2BIG("5727",a);
	s2BIG("1173",b);
	int cnt=0;
	while(true)
	{
		if(checkBIG(a))
		{
			cnt++;
			printBIG(a);
			cout<<"1725\n";
		}
        addBIG(a,b,a);
		if(cnt==1000) break;
	}
	return 0;
}