- BC20280091's blog
1725
- @ 2025-12-3 21:15:15
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;
}