链接:https://ac.nowcoder.com/acm/contest/318/L
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
在国外,666代表魔鬼,777代表上帝。
所以牛逼的彪神就非常不喜欢6这个数字。
有一天彪神突发奇想,,他想求一些书与6无关的数。
如果一个数能被6整除,或者它的十进制表示法中某位上的数字为6,则称其为与6相关的数。彪神要求所有小于等于N的与6无关的正整数的平方和。
输入描述:
第一行一个数T表示有T组数据。(T≤20)
后面T行数每行一个N,表示求所有小于等于N的与6无关的正整数的平方和。(N≤106)
输出描述:
T行,每行一个数表示求所有小于等于N的与6无关的正整数的平方和。
示例1
输入
5 4 5 6 7 8
输出
30 55 55 104 168
注意:long long 是个坑点
代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
int main()
{
int T;
cin>>T;
long long int sum;
for(int t=0;t<T;t++)
{
long long int N;
sum=0;
scanf("%lld",&N);
for(long long int j=1;j<=N;j++)
{
if(j%6==0)
{
continue;
}
int k=j;
int flag=0;
while(k)
{
if(k%10==6)
{
flag=1;
break;
}
k/=10;
}
if(flag==1)
{
continue;
}
if(flag==0)
{
sum+=j*j;
}
}
printf("%lld
",sum);
}
return 0;
}