A ver, lo primero: la estructura general de un bucle for es la siguiente:
for(variable = Inicio; Condición para que continue; Incremento o Decremento).
Tú haces esto:
for(numero=0;contador<=20;numero++)
Contador no lo incrementas nunca por lo que el programa va a estar haciendo cosas hasta que se canse.
Por otro lado, y suponiendo que lo hemos aprendido en la escuela, un número primo es aquel que solo puede dividirse por la unidad y consigo mismo. De la forma que tú lo has hecho si numero valiese 4 e i valiese 2 te diría que 4 es un número primo cuando eso no es verdad.
Entonces, ¿cuál es la solución?. En primer lugar miraría el manual, libro, guia, articulo que estés siguiendo y dominaría primero eso del bucle, después haría lo siguiente:
1) Un bucle for que vaya desde 1 hasta 20.
2) Un bucle dentro de ese anterior que vaya desde 2 (sabemos que por uno se puede dividir si o si) hasta el número que queremos comprobar si es primo.
3) Comprobamos en cada iteración si el resto de dividir el número por i nos da un resto distinto de 0 (lo que significa que no es divisible), si en alguna iteración nos da resto 0 y el valor de i no es ni 0 ni el número, entonces paramos puesto que sabemos que ese número es divisible por uno que es distinto de sí mismo y de 1.
Básicamente esa es la idea, ahora a darle al papel (podrías hacerlo primero en papel la idea) y luego al teclado.
Saludos.
madpitbull_99 así no va a aprender... pero bueno.