题目描述
小L是一名有理想有抱负的大学生,但是某天他遇到了一个难题,描述如下:
一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7的相关数
求所有大于0且小于等于N的不属于7的相关数的平方和。
希望你能帮他解决这个问题。
输入
第一行包括一个数T(1<=T<=100000),表示接下来有T组数据,每行包括一个数N(1≤N≤1e6)。
输出
输出T组数据。
每组数据包括1个整数占一行,表示所有小于等于N的与7无关的正整数的平方和。
样例输入
5
4
5
6
7
8
样例输出
30
55
91
91
155
pf 表示平方
dt 表示与7无关
#include<iostream>
#include<cmath>
using namespace std;
long long pf(long long n)
{
return n*n;
}
long long dt(long long n)
{
while(n)
{
if(n%10==7)
{
return 0;
break;
}
else
{
n/=10;
}
}
if(n==0)
return 1;
}
int main()
{
long long T;
long long N;
long long s;
cin>>T;
while(T--)
{
cin>>N;
s=0;
for(long long i=1;i<=N;i++)
{
if(dt(i)==1)
{
s+=pf(i);
}
}
cout<<s<<endl;
}
return 0;
}