2690 shaares
public class ColorQuestion {
public long getSolutionNums(int n) {
long[] nums = new long[51];
nums[0] = 3;
nums[1] = 6;//A(3,2)
nums[2] = 6;//A(3,3)
for(int i = 3; i < n; i++) {//for n=i, condition on (i-1)th color
nums[i] = nums[i-1] + 2*nums[i-2];
}
return nums[n-1];
}
}
public long getSolutionNums(int n) {
long[] nums = new long[51];
nums[0] = 3;
nums[1] = 6;//A(3,2)
nums[2] = 6;//A(3,3)
for(int i = 3; i < n; i++) {//for n=i, condition on (i-1)th color
nums[i] = nums[i-1] + 2*nums[i-2];
}
return nums[n-1];
}
}
import java.math.BigInteger;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static int maxn=(int) 1e6+1;
static BigInteger sum[]=new BigInteger [maxn]; //开始数组类型用的long,爆掉....改成了大整数
static boolean a[]=new boolean[maxn];
/* static boolean check(int m){
int flag=1;
while(m>0){
int tmp=m%10;
if(tmp==7){ flag=0;break;}
else
m/=10;
}
if(flag==0)return false;
else return true;
}*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
Arrays.fill(a,true);
for(int i=7;i<maxn;i+=7)
a[i]=false;
for(int i=1;i<maxn;i*=10){ //枚举个,十,百位...
int tmp=i*10;
for(int j=i*7;j<maxn;j+=tmp){
for(int r=0;r<i;r++)
a[j+r]=false;
}
}
/* for(int i=0;i<maxn;i++){
if(check(i)==false)a[i]=false;
}*/
sum[0]=BigInteger.ZERO;
for(int i=1;i<maxn;i++){
if(a[i])
sum[i]=sum[i-1].add(BigInteger.valueOf(i).multiply(BigInteger.valueOf(i))); //递推式啊!!!!!囧
else
sum[i]=sum[i-1];
}
int n=scan.nextInt();
while(n-->0){
int m=scan.nextInt();
System.out.println(sum[m]);
}
}
}
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static int maxn=(int) 1e6+1;
static BigInteger sum[]=new BigInteger [maxn]; //开始数组类型用的long,爆掉....改成了大整数
static boolean a[]=new boolean[maxn];
/* static boolean check(int m){
int flag=1;
while(m>0){
int tmp=m%10;
if(tmp==7){ flag=0;break;}
else
m/=10;
}
if(flag==0)return false;
else return true;
}*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan=new Scanner(System.in);
Arrays.fill(a,true);
for(int i=7;i<maxn;i+=7)
a[i]=false;
for(int i=1;i<maxn;i*=10){ //枚举个,十,百位...
int tmp=i*10;
for(int j=i*7;j<maxn;j+=tmp){
for(int r=0;r<i;r++)
a[j+r]=false;
}
}
/* for(int i=0;i<maxn;i++){
if(check(i)==false)a[i]=false;
}*/
sum[0]=BigInteger.ZERO;
for(int i=1;i<maxn;i++){
if(a[i])
sum[i]=sum[i-1].add(BigInteger.valueOf(i).multiply(BigInteger.valueOf(i))); //递推式啊!!!!!囧
else
sum[i]=sum[i-1];
}
int n=scan.nextInt();
while(n-->0){
int m=scan.nextInt();
System.out.println(sum[m]);
}
}
}
using namespace std;