I wrote a program that is supposed to take a chinese prime number factoring algorithm and print a list of x prime numbers. The code compiles with no errors and runs. But the program does nothing. Ive played around with it and havent been able to get anything to change. I don't quite know where my logic went wrong. Any ideas?

Code:primes.h: #include <stdio.h> #include <stdlib.h> int is_prime(int n); // function definition is_prime.c: #include "primes.h" // Includes the header file int is_prime(int n) { int k, limit; // Initialization of local variables if (n == 2) // This returns to '1' if n is equal to 2 return 1; if (n % 2 == 0) return 0; // The modulus determines if the number is divisible by 2 (remainder) and returns a boolerian 1 or 0 depending on the number input limit = n / 2; // This part of the code I dont understand for (k = 3; k <= limit; k += 2) // The for statement assigns a value of 3 to k and checks if the number is divisible by 3 if (n % k == 0) // if the modulus of n and k (3) is equal to zero it returns a 0 return 0; // returns 0 for odd non-prime numbers return 1; // returns 1 for prime numbers } main.c: #include "primes.h" // includes the header file int limit, n; int main(void) // main program { int i = 1; // counter variable printf("PRIMES WILL BE PRINTED.\n\n"); // printed messages printf("How many do you want to see?\n"); scanf("%d", &limit); // assigns the upper value of primes to find while (i <= limit) { // loops until the incrementer reaches the end number of primes is_prime(n); if(n == 1) printf("%6d: %10d\n",i++,n); // prints out prime number and counter, then increments the counter else i++; // increment counter without printing } return 0; }