链接:https://ac.nowcoder.com/acm/contest/318/L
来源:牛客网
题目描述
在国外,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
#include <iostream>
using namespace std;
int fun(int n) {
int t;
while (n) {
t = n % 10;
if (t != 6) {
n /= 10;
} else return 0;
}
return 1;
}
int main() {
int t, n;
cin >> t;
while (t--) {
long long sum = 0;
cin >> n;
for (long long i = 1; i <= n; i++) { // 卡主的地方是在i要用long long 还好最后过了
if (fun(i) == 1 && i % 6 != 0) {
sum += i*i;
}
}
cout << sum << endl;
}
return 0;
}