Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def splitNum(param)
- stringNum = param.to_s.split('')
- addToArray(stringNum)
- end
- def addToArray(param)
- array = []
- param.each do |x|
- array.push(x.to_i)
- end
- findLength(array)
- end
- def findLength(param)
- if param.length == 16
- puts "Visa, Mastercard, and Discover use 16 digit cards."
- everySecondDigit(param)
- elsif param.length < 16
- if param.length == 13
- puts "Visa uses 14 digit credit cards"
- everySecondDigit(param)
- elsif param.length == 15
- puts "American Express uses 15 digit credit cards"
- everySecondDigit(param)
- else
- puts "Invalid: Too many digits in Credit Card."
- return false
- end
- elsif param.length > 16
- puts "Invalid: Too many digits in Credit Card."
- return false
- end
- end
- def everySecondDigit(param)
- newArray = []
- param.reverse.each_with_index do |x,index|
- if index % 2 == 1
- x = x * 2
- if x >= 10
- x = x - 9
- newArray.push(x)
- else
- newArray.push(x)
- end
- else
- newArray.push(x)
- end
- end
- multiply(newArray)
- end
- def multiply(param)
- arraySum = param.reverse.sum
- p arraySum
- if arraySum % 10 == 0
- puts "Valid Number!"
- return true
- else
- puts "Invalid Number!"
- return false
- end
- end
- a = 4194560385008504
- splitNum(a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement