Thread: Primes.c help

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Registered User
    Join Date
    Nov 2001
    Posts
    4

    Question Primes.c help

    I need help!

    We had to write a program that outputs all the prime numbers b/w 2 and 10,000, including a function prime()

    Maybe my logic was wrong or I've written my function wrong:

    Hers my function:

    /************************************************** ********************
    * Function prime()- checks if a number is prime
    */

    prime () {
    int first_number;
    int divisor;
    divisor>1;
    divisor<first_number;
    while (divisor<first_number) {
    if ((first_number%divisor!=0)) {
    printf( "%d", first_number);
    } /*endif */
    } /* end_while */
    } /* end function prime */

    up above,in my main function, i have the starting first_number set at two and then it counts until it reaches 10,000

    It compiles okay, but when I run it, I get this message:

    Exiting due to signal SIGFPE
    Division by Zero at eip=000015c7, x87 status=0000
    eax=00000000 ebx=0000875e ecx=0008f100 edx=00000000 esi=00000054 edi=0000f148
    ebp=0008f108 esp=0008f0f0 program=C:\CS133U\PRIMES.EXE
    cs: sel=00a7 base=875ea000 limit=0009ffff
    ds: sel=00af base=875ea000 limit=0009ffff
    es: sel=00af base=875ea000 limit=0009ffff
    fs: sel=0087 base=00014fe0 limit=0000ffff
    gs: sel=00bf base=00000000 limit=0010ffff
    ss: sel=00af base=875ea000 limit=0009ffff
    App stack: [0008f148..0000f148] Exceptn stack: [0000f0a8..0000d168]

    Call frame traceback EIPs:
    0x000015c7
    0x00001595
    0x000029c2

  2. #2
    Patent Pending GSLR's Avatar
    Join Date
    Sep 2001
    Posts
    134

    Lightbulb

    HI

    Perhaps you need to use a long or double integer

    cheers

  3. #3
    Registered User
    Join Date
    Nov 2001
    Posts
    4

    Unhappy help

    prime () {
    double first_number;
    double divisor;
    divisor>1;
    divisor<first_number;
    while (divisor<first_number) {
    if ((first_number%divisor!=0)) {
    printf( "%lf", first_number);
    } /*endif */
    /* end_while */
    /* end function prime */


    When I tried double, I got this message during compilation:

    primes.c:36: invalid operands to binary %

  4. #4
    Patent Pending GSLR's Avatar
    Join Date
    Sep 2001
    Posts
    134

    Lightbulb

    ok

    send the prog ill try compile it here

  5. #5
    Registered User
    Join Date
    Nov 2001
    Posts
    4
    Thanks

  6. #6
    Patent Pending GSLR's Avatar
    Join Date
    Sep 2001
    Posts
    134

    Exclamation ok see if this helps

    ok this might help a little

  7. #7
    Registered User
    Join Date
    Nov 2001
    Posts
    4

    didn't work

    Thanks, but, i got that first error.. it compiled, but when it ran:

    Exiting due to signal SIGFPE
    Division by Zero at eip=000015d9, x87 status=0000
    eax=00000002 ebx=0000879c ecx=0008f0e4 edx=00000000 esi=00000054 edi=0000f14
    ebp=0008f0e8 esp=0008f0d0 program=C:\CS133U\PRIME.EXE
    cs: sel=00a7 base=879c2000 limit=0009ffff
    ds: sel=00af base=879c2000 limit=0009ffff
    es: sel=00af base=879c2000 limit=0009ffff
    fs: sel=0087 base=00014fd0 limit=0000ffff
    gs: sel=00bf base=00000000 limit=0010ffff
    ss: sel=00af base=879c2000 limit=0009ffff
    App stack: [0008f148..0000f148] Exceptn stack: [0000f0a8..0000d168]

    Call frame traceback EIPs:
    0x000015d9
    0x000015bc
    0x000029d2

  8. #8
    Unregistered
    Guest
    Try this...

    Code:
    /* primes.cpp
     *
     * This program calculates the primes numbers b/w 2 and 10,000   
     * Meghavi Shah
     * November 4, 2001
     * CS133U, Lab 4  
     */
    
    #include <stdio.h>
    
    bool isPrime (int);
    
    int main ()
    {
        int number;
    
    	for (number = 2; number < 10000; number++) 
    		if (isPrime(number) == 1) printf("%d",number);
    	
    	return 0;
    } /* end function main */
    
    /**********************************************************************
     *  Function isPrime()- checks if a number is prime
     */
    
    bool isPrime (int value)
    {
    	for (int divisor = 1; divisor < value / 2; divisor++)
    		if (value % divisor == 0) return false; // It is divisible, thus it is not prime.
    	return true; // It is not divisible, thus it is prime.
    } /* end function prime */

Popular pages Recent additions subscribe to a feed