Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

NEED THIS QUESTION ANSWERED FOR THE CODING LANGUAGE PYTHON! PYTHON CODE ONLY PLE

ID: 3786464 • Letter: N

Question

NEED THIS QUESTION ANSWERED FOR THE CODING LANGUAGE PYTHON!

PYTHON CODE ONLY PLEASE.

The last digit of a credit card number is the check digit, which protects against transcription errors such as an error in a single digit or the transposition of two adjacent digits. The following method is used to verify actual credit card numbers but (for simplicity) we will describe it for a number with 8 digits instead of 16. • Starting form the rightmost digit, form the sum of every other digit. – Example: if the card number is 4358 9795, then you form the sum: 5 + 7 + 8 + 3 = 23 • Double each of the digits that were not included in the previous step. Add all the digits of the resulting numbers. – Example: for the card number 4358 9795, the not included digits were [9, 9, 5, 4]. Doubling these leads to [18, 18, 10, 8]. Summing the digits results in: 1 + 8 + 1 + 8 + 1 + 0 + 8 = 27 • Add the sums from the previous two steps. If the last digit of the sum is zero, then the credit card number is valid. – Example: for the number 4358 9795, this step gives 23 + 27 = 50. The last digit of 0 means the number is valid. Write a program that accepts a number from the user via a prompt and perform the above algorithm to check if the number is valid or not. If the number is valid, print a message to the screen informing the user. Your program should be capable of performing the algorithm on a number consisting of any number of digits. (Hint: When isolating individual digits, it is useful work on the number as a string, which is just a sequence of characters. When performing arithmetic, you will need to convert characters into integers. Remember, the function int() is used to convert floats or strings containing number characters into integers. Likewise, the function str() is used to convert ints or floats into a string of number characters.) The output of your program should display the credit card number entered and its validity status. For example: 43589795 is a VALID credit card number. Test your program with the following numbers (spaced provided simply to make reading easier, your program does not need to handle spaces.):

4358 9795

5979 8534 3339 4390

4561 3256 2991 3234

2349 1291 2347

3219 3231 3999

4092 6117 5811 4081

7591 7413 3009 6174 6711 9469 0997 4528

3432 1112 3223 0921

Explanation / Answer

Required solution:

#function to find the sum of digits of a given number
def sum_digits(n):
s = 0
while n:
s = s+ n % 10
n = n / 10
return s

#read input from user
print "Enter credit card number!"
credit_num = raw_input();

#initial value for temporary variables
skip=False
sum1 = 0
sum2 = 0

#iterate through input string in reverse
for c in reversed(credit_num):
if skip==False:
skip = True
sum1 = sum1+ int(c) #compute sum of every other number
else:
temp = 2*int(c) #compute double of every other number
sum2 = sum2+ sum_digits(temp);#compute sum of digits of above
skip = False;

#compute final sum
finalsum = sum1 + sum2


#print the result
print 'final sum='+str(finalsum)
if finalsum%2 == 0 :
print credit_num +' is Valid Credit Card Number'
else:
print credit_num +' is Invalid Credit Card Number'

Sample Tests:

1. Enter credit card number!   43589795 final sum=50   43589795 is Valid Credit Card Number

2. Enter credit card number! 5979853433394390 final sum=90 5979853433394390 is Valid Credit Card Number