Por favor no entiendo este codigo, es para dar los primeros n numeros primos en un vector el usuario debe decir la cantidad de numeros primos; pero no entiendo porque en el ciclo usa una k
#include <stdio.h>
int primos[100],i,k,n;
int main()
{
printf ("ingrese la cantidad de numeros");
scanf ("%d",&n);
for(i=2;k<=n;i++)
{
if(i%2!=0 && i%3!=0 && i%5!=0 && i%7!=0)
{
k++;
primos[k]=i;
}else{
if(i==2 || i==3 || i==5 || i==7){
k++;
primos[k]=i;
}
}
}
for(i=1;i<=n;i++)
{
printf("%d ",primos[i]);
}
getchar ();
}