I'm still new to C. I wrote some code, but I'm sure I did something wrong because it's not giving the correct output.

(compiling and running on linux)

Code:

void main()
{
unsigned long startingNumber; // THE Number. Is it prime?
printf("Enter Positive Number (0 to 4,294,967,295) to be Tested : ");
scanf(startingNumber);
printf("\nTesting ", startingNumber, "...\n");
unsigned long testNumber = (startingNumber / 2);
// A number can't be evenly divided by a number bigger than half the first number.
unsigned long answer = startingNumber % testNumber; // Get the initial remainder.
while (answer != 0 && testNumber > 1) // Decrement while checking for a modulus of 0.
{
answer = startingNumber % testNumber;
testNumber = testNumber - 1;
}
if ((answer == 0) && ((startingNumber / 2) > 1) || (startingNumber == 2))
{
// Check for prime, with fixes for 2, and testNumbers 1 or smaller.
printf(startingNumber, " is NOT a PRIME Number\n");
}
else
printf(startingNumber, " is a PRIME Number\n");
return 0;
};

Output:

Code:

fuzzypig@fuzzypig-ubuntu:~/Documents/source/primechk/c$ ./a.out
Enter Positive Number (0 to 4,294,967,295) to be Tested : 265952
Testing Hfῼﾛ�fuzzypig@fuzzypig-ubuntu:~/Documents/source/primechk/c$

Using GDB, the program exits with code 011.

Can someone help me fix my code?