someone asked earlier about a program involving prime numbers, and i figured they would be pretty easy to work with, so i threw together a simple program to show all of the prime numbers less than 1000. this program looks like it should run perfectly from what i see, but it seems that it comes up with no results at all.

my program looks like this:

#include <stdio.h>

#include <stdlib.h>

void prime();

int i=1000,x=0,y,z;

void main(){

printf("All of the prime numbers less than 1000:\n");

while ( i > 2 ){

z=0;

x=i;

prime();

i = --i;

}

printf("2\n1\n");

system ("PAUSE");

}

void prime (){

while ( x != 1 ){

y = i % (x-1);

x = --x;

if ( y == 0 ){

x = 1;z = 1;}

}

if ( z == 0 ){

printf("%d\n", i); }

}

and the output looks like this:

All of the prime numbers less than 1000:

2

1

press any key to continue...

the prime() function is supposed to check for divisibility in every number below i. if any number divides evenly then it sets z to 1. if z never gets set to 1, and x gets all the way to 1, it prints i and then subtracts one from i and repeats the loop. why doesnt this ever print anything?