rendered paste body#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int valid_number(char *number);
long convert_string_to_int(char *no);
int main(int argc, char *argv[]) {
long begin = 0;
long end = 0;
int valid = 0;
char buff[12] = "";
if (argc <= 2) return -1;
begin = convert_string_to_int(argv[1]); // converting string to int
end = convert_string_to_int(argv[2]); // and inserting it in variable
printf("begin: %d end: %d\r\nlooking for valid numbers..\r\n", begin, end);
for(int i = 0; i <= end-begin; i++) {
begin++;
sprintf(buff,"%d", begin);
if (valid_number(buff) == 1) valid++;
// printf("string:: int(%d) string(%s) valid ? %d\r\n", begin, buff, valid_number(buff));
}
printf("found: %d\r\n", valid);
return 0;
}
long convert_string_to_int(char *no) {
long l;
errno=0;
l=strtol(no, 0, NULL);
if(errno == 0) {
return l;
} else {
return 0;
}
}
int valid_number(char *number) {
int i, n, sum = 0;
char alternate = 0;
for (i = strlen(number) - 1; i >= 0; i--) {
n = number[i] - '0';
if (alternate) {
n *= 2;
if (n > 9)
n = (n % 10) + 1;
}
sum += n;
alternate = !alternate;
}
return (sum % 10 == 0);
}