Skip to content

Commit 04c04e7

Browse files
authored
Create Luhn_Algorithm.c
1 parent 601ad98 commit 04c04e7

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

Luhn_Algorithm.c

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
int Luhn_Algorithm()
2+
{
3+
int i, k, digit, value=0, f=0, len;
4+
char num[20];
5+
printf("Enter the number:");
6+
scanf("%s", &num);
7+
len=strlen(num);
8+
// Length Check
9+
if(len!=16)
10+
{
11+
printf("Enter a valid 16-digit number.");
12+
return 0;
13+
}
14+
// Check for Invalid Characters
15+
for(i=0;i<=(len-1);i++)
16+
{
17+
if((isdigit(num[i]))==0)
18+
{
19+
printf("Invalid Character %c. Enter a valid 16-digit number only.", num[i]);
20+
return 0;
21+
}
22+
}
23+
// Main Logic
24+
for(i=0;i<=14;i=i+2)
25+
{
26+
digit=(num[i]-'0');
27+
k=digit*2;
28+
if(k>9)
29+
{
30+
k=k-9;
31+
}
32+
value=value+k;
33+
}
34+
for(i=1;i<=15;i=i+2)
35+
{
36+
digit=(num[i]-'0');
37+
value=value+digit;
38+
}
39+
if((value%10)==0)
40+
{
41+
printf("%s passes Luhn's Algorithm'.", num);
42+
}
43+
else
44+
{
45+
printf("%s does not pass Luhn's Algorithm'.", num);
46+
}
47+
return 0;
48+
}

0 commit comments

Comments
 (0)