結果

問題 No.6 使いものにならないハッシュ
ユーザー 37zigen37zigen
提出日時 2016-03-08 02:51:10
言語 Java21
(openjdk 21)
結果
AC  
実行時間 177 ms / 5,000 ms
コード長 1,483 bytes
コンパイル時間 2,455 ms
コンパイル使用メモリ 79,332 KB
実行使用メモリ 45,620 KB
最終ジャッジ日時 2024-09-16 16:33:02
合計ジャッジ時間 8,391 ms
ジャッジサーバーID
(参考情報)
judge1 / judge6
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 122 ms
41,336 KB
testcase_01 AC 105 ms
39,988 KB
testcase_02 AC 159 ms
45,468 KB
testcase_03 AC 131 ms
42,484 KB
testcase_04 AC 142 ms
43,988 KB
testcase_05 AC 140 ms
43,256 KB
testcase_06 AC 161 ms
44,024 KB
testcase_07 AC 164 ms
45,192 KB
testcase_08 AC 169 ms
44,192 KB
testcase_09 AC 165 ms
45,364 KB
testcase_10 AC 110 ms
39,972 KB
testcase_11 AC 134 ms
42,492 KB
testcase_12 AC 159 ms
43,580 KB
testcase_13 AC 170 ms
45,620 KB
testcase_14 AC 149 ms
44,376 KB
testcase_15 AC 155 ms
43,668 KB
testcase_16 AC 170 ms
45,200 KB
testcase_17 AC 168 ms
43,824 KB
testcase_18 AC 174 ms
45,484 KB
testcase_19 AC 167 ms
43,816 KB
testcase_20 AC 160 ms
43,788 KB
testcase_21 AC 126 ms
42,048 KB
testcase_22 AC 167 ms
44,032 KB
testcase_23 AC 163 ms
43,980 KB
testcase_24 AC 165 ms
43,972 KB
testcase_25 AC 163 ms
44,968 KB
testcase_26 AC 149 ms
42,760 KB
testcase_27 AC 168 ms
44,048 KB
testcase_28 AC 152 ms
44,424 KB
testcase_29 AC 175 ms
45,480 KB
testcase_30 AC 177 ms
43,788 KB
testcase_31 AC 173 ms
44,036 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) throws Exception {
		PrintWriter pw=new PrintWriter(System.out);
		Scanner sc=new Scanner(System.in);

		int k=sc.nextInt();
		int n=sc.nextInt();

		int s=k;
		int t=k;
		int len=0;

		ArrayList<Integer> isPrime=new ArrayList<>();
		isPrime=PrimeList(n);
		int i=0;
		while(i<isPrime.size()&&isPrime.get(i)<k){
			i++;
		}
		int memP=k;
		for(;i<=n;i++){
			boolean[] used=new boolean[10];
			for(int j=i;j<isPrime.size();j++){
				int h=hash(isPrime.get(j));
				if(used[h])break;
				used[h]=true;
				if(j-i+1>=len){
					len=j-i+1;
					memP=isPrime.get(i);
				}
			}
		}


		pw.println(memP);
		pw.close();
		sc.close();
	} 

	public static boolean[] isPrime(int max){//trueでPrime
		boolean[] p=new boolean[max+1];
		Arrays.fill(p, true);
		p[0]=false;
		p[1]=false;
		for(int i=2;i<=max;i++){
			if(p[i]==true){
				for(int j=2;j*i<=max;j++){
					p[j*i]=false;
				}
			}
		}
		return p;
	}

	public static int hash(int n){
		int sum=0;
		while(n>=1){
			sum+=n%10;
			n=(n-n%10)/10;
		}
		n=sum;
		if(n>=10){
			return hash(n);
		}else{
			return n;	
		}
	}
	public static ArrayList<Integer> PrimeList(int max){
		ArrayList<Integer> isPrime=new ArrayList<>();
		boolean[] p=new boolean[max+1];
		p=isPrime(max);
		for(int i=2;i<=max;i++){
			if(p[i]){
				isPrime.add(i);
			}
		}
		return isPrime;
	}

}
0