思路
打表。。。注意LL
#include <iostream>
#include <stdio.h>
using namespace std;
typedef long long ll;
long long a[1000005];
void init( )
{
for(ll i=1;i<=6;i++)
a[i]=i*i+a[i-1];
a[7]=a[6];
for(ll i=8;i<=1000005;i++)
{
ll b=i%10;
ll c=(i/10)%10;
ll d=(i/100)%10;
ll e=(i/1000)%10;
ll f=(i/10000)%10;
ll g=(i/100000)%10;
ll h=(i/1000000)%10;
if((i%7==0)||(b==7)||(c==7)||(d==7)||(e==7)||(f==7)||(g==7)||(h==7))
{
a[i]=a[i-1];
}
else
a[i]=a[i-1]+i*i;
}
}
int main()
{
init();
int T;
cin>>T;
while(T--)
{
int t;
cin>>t;
printf("%lld\n",a[t]);
}
return 0;
}