Problem:
Score : 300 points

Problem Statement

Takahashi loves the number 7 and multiples of K.

Where is the first occurrence of a multiple of K in the sequence 7,77,777,\ldots? (Also see Output and Sample Input/Output below.)

If the sequence contains no multiples of K, print -1 instead.

Constraints

1 \leq K \leq 10^6

K is an integer.

Input

Input is given from Standard Input in the following format:

K

Output

Print an integer representing the position of the first occurrence of a multiple of K. (For example, if the first occurrence is the fourth element of the sequence, print 4.)

Sample Input 1

101

Sample Output 1

4

None of 7, 77, and 777 is a multiple of 101, but 7777 is.

Sample Input 2

2

Sample Output 2

-1

All elements in the sequence are odd numbers; there are no multiples of 2.

Sample Input 3

999983

Sample Output 3

999982

Solution in Java (OpenJDK 11.0.6) (judge verdict: Accepted)

import java.util.*;

public class Main {
	public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	int k = sc.nextInt();
	if(k % 2 == 0){
		System.out.println("-1");
		System.exit(0);
	}
	if(k == 7 || k == 1){
		System.out.println("1");
		System.exit(0);
	}
	boolean finish = false;
	int count = 2;
	final int num = 7 % k;
	int amari = num;
	boolean[] al = new boolean[1000000];
	al[7] = true;
	while(finish == false){
		if((amari * 10 + num) % k == 0) {
			finish = true;
		}
		else if(al[(amari * 10 + num) % k]) {
			System.out.println("-1");
			System.exit(0);
		}
		else if(!((amari * 10 + num) % k == 0)){
			amari = (amari * 10 + num) % k;
			al[amari] = true;
			count++;
		}
	}
	System.out.println(count);
	sc.close();
	}
}