Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cs50.h>
- #include <stdio.h>
- int main(void)
- {
- //Getting Card Number
- long num = get_long("Number: ");
- //Length Count
- long dum = num;
- int digit = 0;
- while (dum>0)
- {
- dum = dum/10;
- digit++;
- }
- //Check Length
- if(digit != 13 && digit != 15 && digit != 16)
- {
- printf("INVALID\n");
- return 0;
- }
- long dum2 = num;
- int sumodd = 0;
- int sumeven = 0;
- int rem1 = 0;
- int rem2 = 0;
- int digit1 = 0;
- int digit2 = 0;
- do
- { //Remove the Last Digit
- rem1 = dum2%10;
- sumodd += rem1;
- dum2 = dum2/10;
- //Remove 2nd Last Digit
- rem2 = dum2%10;
- dum2 = dum2/10;
- //Double the Digit and Add Sum of Digits
- rem2 = rem2*2;
- digit1 = rem2%10;
- rem2 = rem2/10;
- sumeven = sumeven + digit1 + digit2;
- }
- while (dum2>0);
- int final = sumeven + sumodd;
- //Checking if final is a multiple of 10
- long dum3 = num;
- if (final%10 == 0)
- {
- do
- {
- dum3 = dum3/10;
- }
- while(dum>0);
- if((dum3 / 10 == 5) && (0 < dum3 % 10 && dum3 % 10 < 6))
- {
- printf("MASTERCARD\n");
- }
- else if (dum3 == 34 || dum3 == 37)
- {
- printf("AMEX\n");
- }
- else if ((dum3/10) == 4)
- {
- printf("VISA\n");
- }
- else
- {
- printf("INVALID\n");
- }
- }
- else
- {
- printf("INVALID\n");
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment