Prime Ring Problem

A ring is composed of n (even number) circles as shown in diagram. Put natural numbers 1,2,.....,n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.

Note: the number of first circle should always be 1.

Input

n (0 < n <= 16)

Output

The output format is shown as sample below. Each row represents a series of circle numbers in the ring beginning from 1 clockwisely and anticlockwisely. The order of numbers must satisfy the above requirements.


You are to write a program that completes above process.

Sample Input

6
8

Sample Output

Case 1:
1 4 3 2 5 6
1 6 5 2 3 4

Case 2:
1 2 3 8 5 6 7 4
1 2 5 8 3 4 7 6
1 4 7 6 5 8 3 2
1 6 7 4 3 8 5 2

'프로그래밍 > 코딩퀴즈' 카테고리의 다른 글

The 3n + 1 problem에 관한 고찰  (0) 2012.08.02
The 3n + 1 problem  (0) 2012.08.02


The 3n + 1 problem (http://bluepolaris.tistory.com/138)

코딩 퀴즈 첫번째 문제인 3n+1문제는 풀었지만,

풀다가 보니 숫자별로 사이클이 들쑥날쑥한 것을 발견하여,

문득 호기심이 생겼다.


숫자의 증가에 따른 사이클 수의 변화가 어떠할까?


그래서 뽑아서 그래프를 만들어보았다.

이후 그래프는 x축이 숫자, y축이 사이클 수다.

 

먼저 1부터 100까지.


25정도까지는 조금씩 들쑥날쑥하다가, 그 뒤부터 갑자기 파워 들쑥날쑥하게 변한다.

최초로 사이클 수가 100을 뛰어넘는 숫자는 바로 27. 

100을 넘는 사이클수가 나오기는 하지만, 100가까이 가서도 사이클수가 20 내외로 오락가락 한다.


다음은 1부터 1000까지. 


........벌써 별다른 경향성을 못찾겠다.

숫자가 커져도 20보다 낮은 사이클수를 가진 숫자가 나오는데,

2의 거듭제곱인 수 뿐만이 아니라 다른 숫자에서도 나온다.

이 그래프에서 가장 큰 2의 거듭제곱수는 512인데, 512뒤로도 사이클수가 20 이하인 수들이 나오는 것으로 확인할 수 있다.

 

다음은 1부터 10000 까지.


......이쯤되면 그래프 표시의 한계가 보일정도인데, 꺾은선 그래프라서 높은 것과 낮은 것은 알 수 있다.

1부터 1000까지는 그래프가 들쑥날쑥 하긴해도 확실히 증가하는 추세를 보이는데,

그 이후로는 가끔씩 높은 사이클수가 툭 튀어나오는 점만 제외하면

사이클수가 10~200 사이에서 왔다갔다 하는듯 하다.




이제는 더이상 의미가 있을까 싶은,

1부터 100000까지의 그래프.


무려 십만까지 표시했는데, 사이클수가 300이 넘어가는 숫자가 있는반면,

50이 안되는 숫자들도 있다.



결론 : 숫자가 커질수록 3n+1 사이클 수는......... 지맘대로 변한다.


'프로그래밍 > 코딩퀴즈' 카테고리의 다른 글

Prime Ring Problem  (0) 2012.08.03
The 3n + 1 problem  (0) 2012.08.02

The 3n + 1 problem

Background

Problems in Computer Science are often classified as belonging to a certain class of problems (e.g., NP, Unsolvable, Recursive). In this problem you will be analyzing a property of an algorithm whose classification is not known for all possible inputs.

The Problem

Consider the following algorithm:


1. input n

2. print n

3. if n = 1 then STOP

4. if n is odd then 3n + 1

5. else n/2

6. GOTO 2


Given the input 22, the following sequence of numbers will be printed 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

It is conjectured that the algorithm above will terminate (when a 1 is printed) for any integral input value. Despite the simplicity of the algorithm, it is unknown whether this conjecture is true. It has been verified, however, for all integers n such that 0 < n <>

Given an input n, it is possible to determine the number of numbers printed (including the 1). For a given n this is called the cycle-length of n. In the example above, the cycle length of 22 is 16.

For any two numbers i and j you are to determine the maximum cycle length over all numbers between i and j.

The Input

The input will consist of a series of pairs of integers i and j, one pair of integers per line. All integers will be less than 1,000,000 and greater than 0.

You should process all pairs of integers and for each pair determine the maximum cycle length over all integers between and including i and j.

You can assume that no operation overflows a 32-bit integer.

The Output

For each pair of input integers i and j you should output ij, and the maximum cycle length for integers between and including i and j. These three numbers should be separated by at least one space with all three numbers on one line and with one line of output for each line of input. The integers iand j must appear in the output in the same order in which they appeared in the input and should be followed by the maximum cycle length (on the same line).

Sample Input

1 10
100 200
201 210
900 1000

Sample Output

1 10 20
100 200 125
201 210 89
900 1000 174

'프로그래밍 > 코딩퀴즈' 카테고리의 다른 글

Prime Ring Problem  (0) 2012.08.03
The 3n + 1 problem에 관한 고찰  (0) 2012.08.02

+ Recent posts