<snapdata remixID="13455667"><project name="Luhn Algorithm" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes>Luhn Algorithm - checks if credit card number is valid or not.  it reverses the original digits into a list, creates a list of numbers from1 to length of card number, zips them together sich that each item is a [digit, counter], then using map, each digit is multiplied by 1 if counter is odd or 2 if counter is even, with each product reduced to 1 digit,  if the sum of numbers ends in zero, the card number is valid.</notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Luhn Algorithm"><notes>Luhn Algorithm - checks if credit card number is valid or not.  it reverses the original digits into a list, creates a list of numbers from1 to length of card number, zips them together sich that each item is a [digit, counter], then using map, each digit is multiplied by 1 if counter is odd or 2 if counter is even, with each product reduced to 1 digit,  if the sum of numbers ends in zero, the card number is valid.</notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="myReverse %&apos;plist&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="plist"/><block s="reportNewList"><list></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportConcatenatedLists"><list><custom-block s="myReverse %l"><block s="reportCDR"><block var="plist"/></block></custom-block><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="plist"/></block></list></block></list></block></block></script></block-definition><block-definition s="myZip %&apos;p&apos; %&apos;q&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="p"/><block s="reportNewList"><list></list></block></list></block><block s="reportVariadicEquals"><list><block var="q"/><block s="reportNewList"><list></list></block></list></block></list></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doReport"><block s="reportConcatenatedLists"><list><block s="reportNewList"><list><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block var="p"/></block><block s="reportListItem"><l>1</l><block var="q"/></block></list></block></list></block><custom-block s="myZip %l %l"><block s="reportCDR"><block var="p"/></block><block s="reportCDR"><block var="q"/></block></custom-block></list></block></block></script></block-definition><block-definition s="mySumDigits %&apos;n&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportVariadicSum"><list><block s="reportMonadic"><l><option>floor</option></l><block s="reportQuotient"><block var="n"/><l>10</l></block></block><block s="reportModulus"><block var="n"/><l>10</l></block></list></block></block></script></block-definition><block-definition s="myLuhnCheck %&apos;str&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doSetVar"><l>zipStr</l><custom-block s="myZip %l %l"><custom-block s="myReverse %l"><block var="str"/></custom-block><block s="reportNumbers"><l>1</l><block s="reportListAttribute"><l><option>length</option></l><custom-block s="myReverse %l"><block var="str"/></custom-block></block></block></custom-block></block><block s="doSetVar"><l>sumStr</l><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="mySumDigits %n"><block s="reportVariadicProduct"><list><block s="reportListItem"><l>1</l><l/></block><block s="reportVariadicSum"><list><block s="reportModulus"><block s="reportDifference"><block s="reportListItem"><l>2</l><l/></block><l>1</l></block><l>2</l></block><l>1</l></list></block></list></block></custom-block></autolambda><list></list></block><block var="zipStr"/></block></block><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportModulus"><block s="reportCombine"><block var="sumStr"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><l>10</l></block><l>0</l></list></block></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="201"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="202"></list></costumes><sounds><list struct="atomic" id="203"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="83" y="108" heading="90" scale="1" volume="100" pan="0" rotation="0" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="208"><costumes><list struct="atomic" id="209"></list></costumes><sounds><list struct="atomic" id="210"></list></sounds><blocks></blocks><variables></variables><scripts><script x="309" y="646.333333333333"><block var="c"/></script><script x="801" y="423.33333333333337"><block s="doAsk"><l>enter your credit card number</l></block><block s="doSetVar"><l>str</l><block s="reportTextSplit"><block s="getLastAnswer"></block><l><option>letter</option></l></block></block><block s="doReport"><custom-block s="myLuhnCheck %txt"><block var="str"/></custom-block></block></script></scripts></sprite><watcher scope="Stage" s="getLastAnswer" style="normal" x="10" y="10" color="4,148,220"/><watcher var="str" style="normal" x="10" y="31.000001999999995" color="243,118,29" extX="80" extY="70"/><watcher var="zipStr" style="normal" x="29" y="178.000004" color="243,118,29" extX="135" extY="150"/><watcher var="sumStr" style="normal" x="215" y="137.00000599999998" color="243,118,29" extX="80" extY="70"/></sprites></stage><variables><variable name="str"><list struct="atomic" id="232">1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,0</list></variable><variable name="zipStr"><list id="233"><item><list struct="atomic" id="234">0,1</list></item><item><list struct="atomic" id="235">7,2</list></item><item><list struct="atomic" id="236">6,3</list></item><item><list struct="atomic" id="237">5,4</list></item><item><list struct="atomic" id="238">4,5</list></item><item><list struct="atomic" id="239">3,6</list></item><item><list struct="atomic" id="240">2,7</list></item><item><list struct="atomic" id="241">1,8</list></item><item><list struct="atomic" id="242">8,9</list></item><item><list struct="atomic" id="243">7,10</list></item><item><list struct="atomic" id="244">6,11</list></item><item><list struct="atomic" id="245">5,12</list></item><item><list struct="atomic" id="246">4,13</list></item><item><list struct="atomic" id="247">3,14</list></item><item><list struct="atomic" id="248">2,15</list></item><item><list struct="atomic" id="249">1,16</list></item></list></variable><variable name="sumStr"><list struct="atomic" id="250">0,5,6,1,4,6,2,2,8,5,6,1,4,6,2,2</list></variable></variables></scene></scenes></project><media name="Luhn Algorithm" app="Snap! 9.0, https://snap.berkeley.edu" version="2"></media></snapdata>