Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

C Program

Name: Anonymous 2008-09-25 14:26

Programming newfag here. I'm trying to make a c program that determines whether a number is prime. It isn't working properly though. It only indicate that the number is not prime, regardless of the number, so something wrong. Anybody can help?

#include<stdio.h>

int main(void)
{

    int number;
    int count;
    int divisor = 2;
   
    printf("Input number for primality testing\n");
    scanf("d",number);
   
    while (divisor < number/2) {   
        if (number % divisor == 0) {
            break;   
        }
        else
            divisor++;
    }

    if (divisor == number/2) {
        printf("Number is prime\n");
    }
    else {
        printf("Number is not prime\n");
    }
    return 0;
}

Name: Anonymous 2008-09-25 15:43

This is much better, thanks for the n^(1/2) tip, makes it a bit faster. The program works now, although only for numbers up to 2^32. Heres the code now. The if statement at the end seems kind of messy, but it works.

#include<stdio.h>

int main(void)
{

    unsigned int number;
    unsigned int divisor = 2;
   
    printf("Input number for primality testing (max 4294967295)\n");
    scanf("%d",&number);
   
    while (divisor < number^(1/2)) {   
        if (number % divisor == 0) {
            break;   
        }
        else {
            divisor++;
        }
    }

    if ((divisor == number^(1/2) && number != 4)
        || number == 2 || number == 3) {
        printf("Number is prime\n");
    }
    else {
        printf("Number is not prime\n");
    }
    return 0;
}

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List