FLORIDA HIGH SCHOOLS COMPUTING COMPETITION '96 1.1 FHSCC is an abbreviation for Florida High Schools Computing Competition. Write a program to accept as input a four-digit year between 1980 and 1996, inclusive, and append the last two digits of the year to the phrase: FHSCC '. Examples: INPUT: Enter year: 1996 OUTPUT: FHSCC '96 INPUT: Enter year: 1984 OUTPUT: FHSCC '84 1.2 Write a program to tally the number of frequent flier miles that Doug earns if he flies to and from Caracas, Venezuela X times and stays at the Hilton each time and pays a total of Y dollars in phone calls. The distance of the flight is 1300 miles one-way. Each "stay" at the Hilton earns 500 miles, and each dollar spent on phone calls earns 5 miles. Total will be less than 32767. Examples: INPUT: Enter X: 3 INPUT: Enter X: 2 Enter Y: 10 Enter Y: 100 OUTPUT: 9350 OUTPUT: 6700 1.3 Write a program to print the middle letter or letters of a given word. If the word has an even number of letters, then there will be two middle letters. If the word has an odd number of letters, then there will be one middle letter. Examples: INPUT: Enter word: DOUG OUTPUT: OU INPUT: Enter word: WOOLLEY OUTPUT: L 1.4 Write a program to accept the two end coordinates (X,Y) of one of the diagonals of a rectangle in the Cartesian plane whose sides are parallel to the X or Y-axis. The program must then display the area and perimeter of the rectangle. Examples: INPUT: Enter coordinate 1: -1, 2 Enter coordinate 2: 4, -2 OUTPUT: AREA = 20 PERIMETER = 18 INPUT: Enter coordinate 1: 3, 1 Enter coordinate 2: 0, 0 OUTPUT: AREA = 3 PERIMETER = 8 1.5 Write a program to code-break a given encrypted secret message made up of alphabetic characters and spaces. The decoder must translate the letters ABCDEFGHIJKLMNOPQRSTUVWXYZ into the corresponding letters ZYXWVUTSRQPONMLKJIHGFEDCBA, respectively. A space is decoded into a space. The encryption will not contain more than 40 characters. Example: INPUT: Enter encryption: UOLIRWZ SRTS HXSLLO OUTPUT: FLORIDA HIGH SCHOOL INPUT: Enter encryption: XLNKFGVI XLMGVHG OUTPUT: COMPUTER CONTEST 1.6 A nice hotel in Caracas, Venezuela has 26 floors above the ground floor. Write a program to accept as input the floors on which an elevator of this hotel stops consecutively, and determine the total number of floors that an elevator of this hotel touches and the number of unique floors that the elevator touches. The elevator always starts on the ground (floor 0) and ends on the ground (floor 0). Therefore, the elevator starts by touching the ground floor and ends touching the ground floor. In the first example below, the elevator touches floors 0,1,2,3,4,5 then floors 4,3, then floor 4, then floors 3,2,1,0 for a total of 13 floors. In the second example below, the elevator touches floors 0,1,2, then floors 3,4, then floors 3,2,1,0 for a total of 9 floors. Examples: INPUT: Enter floor: 5 Enter floor: 3 Enter floor: 4 Enter floor: 0 OUTPUT: TOTAL FLOORS TOUCHED = 13 UNIQUE FLOORS TOUCHED = 6 INPUT: Enter floor: 2 Enter floor: 4 Enter floor: 0 OUTPUT: TOTAL FLOORS TOUCHED = 9 UNIQUE FLOORS TOUCHED = 5 INPUT: Enter floor: 20 Enter floor: 5 Enter floor: 24 Enter floor: 10 Enter floor: 0 OUTPUT: TOTAL FLOORS TOUCHED = 79 UNIQUE FLOORS TOUCHED = 25 1.7 Write a program to determine a person's ratios for buying a house and whether he qualifies for a mortgage if a mortgage company will not approve a loan with ratios over 33% / 38%. All amounts input are monthly tallies. To qualify for the loan, the first ratio must not exceed 33% and the second ratio must not exceed 38%. The first ratio computes the loan amount divided by the income. The second ratio computes the sum of the loan and other debts divided by the income. Display the first and second ratios in the format: RATIOS = ##.#% / ##.#%, where each ratio is rounded to the nearest tenth of a percent . Display if this person DOES QUALIFY or DOES NOT QUALIFY for the loan. Examples: INPUT: Enter amount of loan: 900 Enter amount of debts: 200 Enter amount of income: 2800 OUTPUT: RATIOS = 32.1% / 39.3% DOES NOT QUALIFY INPUT: Enter amount of loan: 1000 Enter amount of debts: 170 Enter amount of income: 3100 OUTPUT: RATIOS = 32.3% / 37.7% DOES QUALIFY 1.8 Write a program to convert numbers 1-10 to the English or Spanish word for the number. The program will first prompt for either the letter 'E' for English or 'S' for Spanish. Next, the program will accept as input a number between 1 and 10, inclusive, and display the name of the number in the requested language. English: ONE TWO THREE FOUR FIVE SIX SEVEN EIGHT NINE TEN Spanish: UNO DOS TRES CUATRO CINCO SEIS SIETE OCHO NUEVE DIEZ INPUT: Enter E or S: E Enter number: 4 OUTPUT: FOUR INPUT: Enter E or S: S Enter number: 10 OUTPUT: DIEZ INPUT: Enter E or S: S Enter number: 5 OUTPUT: CINCO 1.9 Write a program to form a cross with the word(s) input, given that the total number of characters input is an odd number and the word(s) are to intersect at the middle character. Example: INPUT: Enter word(s): THE CROSS OUTPUT: T H E THE CROSS R O S S 1.10 Write a program to simulate the PRICE IS RIGHT game. Given an item's actual price, and unique price guesses from four contestants, determine which person comes the closest to the price without going over the actual cost. If every contestant goes over the price, then display the message "EVERYONE IS OVER". Examples: INPUT: Enter actual price: 425 Enter guesses A, B, C, D: 300, 400, 500, 200 OUTPUT: PERSON B INPUT: Enter actual price: 399 Enter guesses A, B, C, D: 300, 400, 500, 301 OUTPUT: PERSON D INPUT: Enter actual price: 299 Enter guesses A, B, C, D: 300, 400, 500, 301 OUTPUT: EVERYONE IS OVER 2.1 Write a program that will emulate random dart throws. The dart scores possible are 0,2,4,5,10,20,50 with the probability of hitting any score being the same as any other. The object of the game is to accumulate a score of at least 100 points. The program will print the score of each dart throw, separated by a comma, until the sum of the scores totals 100 points or more. The program must then print the number of throws that achieved the score, followed by the total score achieved. Sample RANDOM runs: OUTPUT: 2,4,20,4,10,0,5,20,4,2,50 11 THROWS ACHIEVED SCORE OF 121 OUTPUT: 50,20,10,5,10,2,5 7 THROWS ACHIEVED SCORE OF 102 2.2 Write a program to compress information and save space, given a string of data. Input will consist of a string of letters with one or more asterisks (representing spaces) between words. The program must display the string of data with multiple asterisks replaced by the number of asterisks being eliminated. If only one asterisk separates two words, the asterisk should not be replaced with the number 1 since space would not be conserved. Examples: INPUT: Enter string: WE*CONSERVE****SPACE**BY***COMPRESSION OUTPUT: WE*CONSERVE4SPACE2BY3COMPRESSION INPUT: Enter string: THIS**SENTENCE*IS*****COMPRESSED OUTPUT: THIS2SENTENCE*IS5COMPRESSED 2.3 Set "A" has the property that the product of any two elements (numbers in the set) is 1 less than a perfect square. The numbers 1, 3, and 8 are elements of this set, i.e. 1x3=(4-1), 1x8=(9-1), 3x8=(25-1). Write a program to find two other whole numbers less than 1000 that are also elements of set "A". Display the solutions in numerical order in the format shown below, where # represents a digit. Example output format: OUTPUT: # ### 2.4 Write an efficient program to display the least common multiple of a set of integers from 1 to N, inclusive, where N is at most 30. The least common multiple is a positive integer that is evenly divisible by every integer in the set and will contain at most 13 digits. Examples: INPUT: Enter N: 6 INPUT: Enter N: 30 OUTPUT: 60 OUTPUT: 2329089562800 2.5 Write a program to calculate a fractional value of three- letter words. The reciprocal value of a letter in the alphabet (A...Z) is defined as the reciprocal of the position of that letter in the alphabet (A=1/1, B=1/2, C=1/3 ... Z=1/26). The fractional value is the sum of the reciprocals of the value of each letter in that word. This value must be printed as a simplified fraction. In the first example below, CAB is 1/3 + 1/1 + 1/2 = 11/6. In the second example below, EAT is 1/5 + 1/1 + 1/20 = (4 + 20 + 1)/20 = 25/20 = 5/4. Examples: INPUT: Enter word: CAB OUTPUT: 11/6 INPUT: Enter word: EAT OUTPUT: 5/4 2.6 The Fibonacci sequence has the property that each number (beyond the first two) is the sum of the previous two numbers (1,1,2,3,5,8,...). The first two numbers in the sequence are 1 and 1. The third number is the sum of 1 and 1, or 2. The fourth number is the sum of 1 and 2, or 3. The fifth number is the sum of 2 and 3, or 5, etc. Write a program to accept as input a number, N, less than 10, and display the Nth prime within the Fibonacci sequence. The first prime number in the sequence is the number 2. Examples: INPUT: Enter N: 3 OUTPUT: 5 INPUT: Enter N: 9 OUTPUT: 514229 2.7 GTE sorts its phone bills by postal code then by telephone number before the bills are printed. Write a program to accept as input a list of (at most 8) four-digit phone numbers followed by zip code, and display the order in which the phone numbers will be printed. Input will be terminated by the entry 0000, 00000. All other entries will not have any leading zeros. Example: INPUT: Enter phone #, zip: 1796, 33647 Enter phone #, zip: 1521, 33555 Enter phone #, zip: 2001, 33647 Enter phone #, zip: 1400, 33647 Enter phone #, zip: 1621, 33555 Enter phone #, zip: 0000, 00000 OUTPUT: 1521 1621 1400 1796 2001 2.8 Write a program to display the findings of a statistical test on a set of random letters. Given a string of letters, display the number of runs of letters that are in the first half of the alphabet (A,B,C,D,E,F,G,H,I,J,K,L,M), and the number of runs of letters that are in the second half of the alphabet (N,O,P,Q,R,S,T, U,V,W,X,Y,Z). A run is a continuous group of elements in the same category. A string of FLANOMZUGODISGOODF consists of the runs: FLA, NO, M, ZU, G, O, DI, S, G, OO, DF. Examples: INPUT: Enter letters: FLANOMZUGODISGOODF OUTPUT: RUNS IN 1ST HALF = 6 RUNS IN 2ND HALF = 5 INPUT: Enter letters: XPQJESUSISLORDQPY OUTPUT: RUNS IN 1ST HALF = 4 RUNS IN 2ND HALF = 5 2.9 Write a program to reverse the order of letters in each word of a given string unless the word is a palindrome (a word that is spelled the same forward and backward). If the word is a palindrome, then replace each letter with a question mark (?). Each word is separated by a single space. Examples: INPUT: Enter string: HOW GOOD IT IS FOR REMER OUTPUT: WOH DOOG TI SI ROF ????? INPUT: Enter string: OTTO CAME UP WITH THE WORD ROADAOR OUTPUT: ???? EMAC PU HTIW EHT DROW ??????? 2.10 Write a program to determine the day of the week that a given date falls by using the following three tables and algorithm: MONTH NUMBERS ------------- January 1 (if leap year then use 0) February 4 (if leap year then use 3) March 4 April 0 CENTURY NUMBERS DAY NUMBERS May 2 -------------------- ----------- June 5 1753 to 1799 add 4 Saturday = 0 July 0 1800 to 1899 add 2 Sunday = 1 August 3 1900 to 1999 add 0 Monday = 2 September 6 2000 to 2099 add 6 Tuesday = 3 October 1 2100 to 2199 add 4 Wednesday = 4 November 4 Thursday = 5 December 6 Friday = 6 Sum the following five derived numbers: 1) The last two digits of the year. 2) The whole quotient of this number divided by 4. 3) The MONTH NUMBER associated with the input month. 4) The day of the month for the input date. 5) The CENTURY NUMBER associated with the input year. Next, divide the sum of the five numbers above by 7 and compare the remainder with the DAY NUMBERS to obtain the corresponding day. Input will be three numbers corresponding to the month, day, and year. Note that a leap year is divisible by 4, except for those years also divisible by 100; but, if the year is also divisible by 400 then it is still a leap year. In the first example below, the algorithm uses the input date of August 4, 1856, and divides the sum of (56 + 14 + 3 + 4 + 2) by 7, which equals 11 remainder 2. The number 2 corresponds to Monday, so August 4, 1856 was a Monday. Examples: INPUT: Enter month, day, year: 8, 4, 1856 OUTPUT: MONDAY INPUT: Enter month, day, year: 9, 27, 1990 OUTPUT: THURSDAY INPUT: Enter month, day, year: 2, 1, 1996 OUTPUT: THURSDAY 3.1 Write a program to display the appearance of a 3-dimensional book with the two title lines centered vertically on the spine. The spine's height is to be 2 characters more than the longest title line. The book's width is to be 5 characters. In the process of centering the shorter title line, if there is an extra space it should succeed the title line. Title lines will not exceed 17 characters. The left side of the book must be in column 1 and the top of the book must be on row 1 of the screen. Examples: INPUT: Enter title 1: WHERE WE Enter title 2: STAND OUTPUT: (Screen clears, left side in column 1, top in row 1) /---/! / / ! / / ! / / ! !---! ! ! W! ! !S H! ! !T E! ! !A R! ! !N E! ! !D ! / ! W! / ! E! / !---!/ INPUT: Enter title 1: EVIDENCE THAT Enter title 2: DEMANDS A VERDICT OUTPUT: (Screen clears, left side in column 1, top in row 1) /---/! / / ! / / ! / / ! !---! ! !D ! ! !E ! ! !M E! ! !A V! ! !N I! ! !D D! ! !S E! ! ! N! ! !A C! ! ! E! ! !V ! ! !E T! ! !R H! ! !D A! ! !I T! / !C ! / !T ! / !---!/ 3.2 Write a program to produce a prime factors tree for a given number. As seen in the example below, the symbols {/} and {\} appear beneath the largest non-prime factors' left and right, respectively. The smallest prime factors on the bottom-left of each {/} are to be displayed in ascending order on each succeeding pair of lines. The larger factor on each line is the dividend of the number appearing above it and the prime on its left. The input number will have less than 10 prime factors and none of the factors will have more than four digits. The program must clear the screen and display the input number beginning in column 6. Examples: INPUT: Enter number: 100 OUTPUT: (Screen is cleared, and the following appears) 100 / \ 2 50 / \ 2 25 / \ 5 5 INPUT: Enter number: 1716 OUTPUT: (Screen is cleared, and the following appears) 1716 / \ 2 858 / \ 2 429 / \ 3 143 / \ 11 13 3.3 Write a program to simulate a "base four" calculator that accepts expressions involving +, -, and unsigned integers in base 4. Each integer input will be less than 6 digits long and the result must be displayed in base 4. No expression will contain more than 40 characters. Examples: INPUT: Enter base 4 expression: 1230+23-3210-123+10 OUTPUT: -2010 INPUT: Enter base 4 expression: 123-12-12+23-321+333 OUTPUT: 200 3.4 Write a program to calculate the daily amount of money that a contractor makes for working between a given time frame. Input will consist of the hourly rate of pay in dollars for contractors who work more than 50 percent of their time during normal working hours (7 AM - 5 PM). If at least 50 percent of the work is done outside of normal hours then the pay rate is to be increased by a "shift differential" of 10 percent to be applied for all the hours worked. Contractors will work less than 12 hours per day. The start and finish time will be input in the form HH:MM and followed by either AM or PM. Note: 11:59AM is followed by 12:00PM, and 11:59PM is followed by 12:00AM. Output must be of the format $DDD.CC with no leading zeros in dollars and have trailing zeros in cents. Examples: INPUT: Enter pay/hour: 9.05 Enter start time: 08:00AM Enter finish time: 07:00PM OUTPUT: $ 99.55 INPUT: Enter pay/hour: 20.00 Enter start time: 12:15PM Enter finish time: 09:45PM OUTPUT: $209.00 3.5 On a panel of 16 buttons (4 rows of 4 buttons), each button must be pressed once and in the correct order. The final button to be pressed is always marked 0F for Final. The number of moves and the direction is marked on each button. 1R means one move right; 2D means two moves down; 3U means three moves up; 1L means one move left. Write a program to print the first button that you must press (and its position) that will lead you to press every other button and finish at the final button 0F. In the first example below, pressing the 3L button leads to 1D, 3R, 2U, 1U, 2L, 3D, 1R, 3U, 2L, 1D, 2R, 1L, 1D, 1R, 0F. Examples: INPUT: Enter row: 1D 3D 2L 2L Enter row: 2R 1D 1L 1U Enter row: 1D 1R 0F 3L Enter row: 3R 1R 3U 2U OUTPUT: FIRST BUTTON = 3L AT ROW = 3, COL = 4 INPUT: Enter row: 0F 3D 3D 2L Enter row: 2R 1D 1U 2L Enter row: 2U 1L 1R 1U Enter row: 2U 1L 1U 3U OUTPUT: FIRST BUTTON = 3U AT ROW = 4, COL = 4 3.6 A magic square is a matrix of distinct numbers with the same number of rows as columns, and the sum of the numbers in each row, column, and diagonal is equal to the same total (the magic number). There are a number of general methods for generating magic squares with an odd "order" (number of rows and columns). La Loubre invented the staircase method: 1) Start with a number in the top middle square. 2) The next number (incremented by a constant) is placed diagonally up and right in the next box of the array. If the number would be placed outside of the array, then the number is moved to another spot in the array according to these two rules: If the top row is exceeded, then it is placed in the bottom row; if the right-most column is exceeded, then it is placed in the first column. 3) If the square is already occupied while trying to place the number in the array, then the number is placed in the square that is immediately below the original number. If the bottom row is exceeded then the number is placed in the top row with the same column. 4) Continue to place numbers in the magic square by repeating steps 2 and 3 until all squares have been populated. Write a program to display a magic square using the staircase algorithm, given as input an odd "order" for the magic square (at most 13), the first positive integer to use, and the positive integral increment between each successive number. In the magic square, each number is to be right justified within a four- character column. Begin the output by displaying the magic number (the sum of all the cells for a column, for a row, for a diagonal). Examples: INPUT: Enter order, first number, increment: 3, 2, 3 OUTPUT: MAGIC NUMBER = 42 23 2 17 8 14 20 11 26 5 INPUT: Enter order, first number, increment: 7, 90, 2 OUTPUT: MAGIC NUMBER = 966 148 166 184 90 108 126 144 164 182 102 106 124 142 146 180 100 104 122 140 158 162 98 116 120 138 156 160 178 114 118 136 154 172 176 96 130 134 152 170 174 94 112 132 150 168 186 92 110 128 3.7 A magic square is a matrix of distinct numbers with the same number of rows as columns and the sum of the numbers in each row, column, and diagonal is equal to the same total (the magic number). All magic squares with an odd "order" (number of rows and columns) can be generated using La Loubre's staircase method. General methods are still being explored for generating magic squares with an even "order" (number of rows and columns). Magic squares whose order is a multiple of four can be constructed by a particular method. However, the most difficult magic square to produce is one with an order of 6. The easiest method used to construct a 6 by 6 magic square is as follows: 1) Divide the 6 by 6 square into four 3 by 3 squares. 2) Using the "staircase" method to generate 3 by 3 magic squares, place the first nine numbers in the upper left 3 by 3 square, place the next nine numbers in the lower right-hand 3 by 3 square, place the next nine numbers in the upper right-hand 3 by 3 square, place the last nine numbers in the lower left-hand 3 by 3 square. 3) Transpose the three cells in positions (1,1), (2,2), (3,1) with those cells in positions (4,1), (5,2), and (6,1), respectively, where each position is designated by (Row, Column). Write a program to display the 6 by 6 magic square using the staircase algorithm, given as input the first positive integer to use and the positive increment between each successive number. Each number is to be right justified within a four-character column. Begin the output by displaying the magic number (the sum of all the cells for a column, for a row, and for a diagonal). For the example below, a 6 by 6 magic square starting with the number 1 and each successive number incremented by 1 would look like this after steps 1 and 2: 8 1 6 26 19 24 3 5 7 21 23 25 4 9 2 22 27 20 35 28 33 17 10 15 30 32 34 12 14 16 31 36 29 13 18 11 The final magic square is displayed below. Example: INPUT: Enter first number, increment: 1, 1 OUTPUT: MAGIC NUMBER = 111 35 1 6 26 19 24 3 32 7 21 23 25 31 9 2 22 27 20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29 13 18 11 3.8 Write a program to display a pie graph on the screen using asterisks and the letters A, D, and N. Input will be 3 percentages to divide the circle corresponding to 3 options on a survey: Agree, Disagree, or Neutral. Output will be a circle of radius 10 characters. The circle is then partitioned by 3 line segments of asterisks stemming from the center. The first percentage entered (those that Agree) is represented by a proportional region of the circle enclosed by two segments: One segment is drawn from the center to the top of the circle, and another segment is drawn from the center to a point on the circle, enclosing a clock-wise region. Another segment is drawn from the center to the circle so that the next area clock-wise represents the percentage that disagrees. The third region clock-wise represents the percentage that is neutral. After the user presses a key, the 3 regions are filled with either A's, D's, or N's, corresponding to its region. Although your output should look very similar to the judging criteria, minor variations will be accepted. After pressing a key to fill the regions, all regions must be at least 90% filled. No letters may replace any of the asterisks. Example: INPUT: Enter 3 percentages: 64, 11, 25 OUTPUT: ******* OUTPUT: ******* ** * ** **NNN*AAA** * * * *NNNNN*AAAAA* * * * *NNNNNN*AAAAAA* * * * *NNNNNNN*AAAAAAA* * * * *NNNNNNNN*AAAAAAAA* * * * *NNNNNNNN*AAAAAAAA* * * * *NNNNNNNNN*AAAAAAAAA* * * * *NNNNNNNNN*AAAAAAAAA* * * * *NNNNNNNNN*AAAAAAAAA* *********** * ***********AAAAAAAAA* * ** * *DDDDDDD**AAAAAAAAAA* * * * *DDDDDD*AAAAAAAAAAAA* * ** * *DDDD**AAAAAAAAAAAAA* * * * *DD*AAAAAAAAAAAAAA* * * * *DD*AAAAAAAAAAAAAA* ** * **AAAAAAAAAAAAAA* ** * **AAAAAAAAAAAA* * * *AAAAAAAAAAA* ** ** **AAAAAAA** ******* ******* INPUT: (press any key) 3.9 Write a program to produce THE UNIQUE ORDER of execution for jobs (that run Billing system programs) given a set of dependencies between the jobs. The program will first prompt for the number of dependencies (less than 8) that will be entered. Each input line of dependencies will consist of a 2-character job name that must finish before the second 2-character job, separated by a space. The output line must contain THE UNIQUE ORDERING of the jobs, all on one line, that will satisfy the dependencies. Examples: INPUT: Enter number of dependencies: 5 Enter dependency: OA OU Enter dependency: OA OJ Enter dependency: OA OE Enter dependency: OJ OE Enter dependency: OE OU OUTPUT: JOBS MUST BE RUN IN THIS ORDER: OA OJ OE OU INPUT: Enter number of dependencies: 6 Enter dependency: BK 5M Enter dependency: BE BK Enter dependency: BM BN Enter dependency: 5M BN Enter dependency: BK BM Enter dependency: BM 5M OUTPUT: JOBS MUST BE RUN IN THIS ORDER: BE BK BM 5M BN 3.10 The digits 123456789 can be rearranged to form a nine-digit perfect square with unique digits. For example, swapping 7 with 8, 6 with 9, 4 with 8, 3 with 7, 2 with 4, and 1 with 8, forms the perfect square 847159236 (the square of 29106). This square is formed by making six exchanges: swap 7 with 8 123456879 swap 6 with 9 123459876 swap 4 with 8 123859476 swap 3 with 7 127859436 swap 2 with 4 147859236 swap 1 with 8 847159236 Write a program to find the nine-digit perfect square that requires the fewest exchanges of pairs of digits from the original 123456789 number. Display the square with its square root followed by the number of exchanges required to form the square. The format of the output must be two lines as follows in the first example with # representing a digit. The second example output shows what the output would be like IF the fewest number of exchanges is actually 6, but it is fewer. Example outputs: OUTPUT: ######### IS THE SQUARE OF ##### AND WAS FORMED BY EXCHANGING # PAIRS OF DIGITS OUTPUT: 847159236 IS THE SQUARE OF 29106 AND WAS FORMED BY EXCHANGING 6 PAIRS OF DIGITS