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

Can /prog/ please comment on my code?

Name: Anonymous 2010-08-02 19:20


class prob3{
   
    static long BigBossPrimeOne;
   
    public static void primeFactor(long n){
    boolean prime = true;
    long n1=0;
    long n2=0;
    for(long i=2;(i<=(n/2))&&(prime!=false);i++)
        if ((n%i)==0){
        prime = false;
        n1=i;
        n2=n/i;   
        }   
    if ((prime==true)&&(n>BigBossPrimeOne))
        BigBossPrimeOne = n;
   
    if (prime==false){
        primeFactor(n1);
        primeFactor(n2);
        }            
    }

    public static void main(String args[]){
 
    primeFactor(600851475143L);
    System.out.println(BigBossPrimeOne);
    }

}


I'm just doing the Euler thing to pass the time and I thought why not post this on /prog/ for some insight.

Using the Java language.

Feel free to give me any advice.

Thanks!

Please don't mind the presentation. It's the first time using Emacs and I was under the clock (did this in 15 minutes).

Name: Anonymous 2010-08-03 5:57

>>35
>>21
People who program like this don't deserve to get real jobs programming.

Should be cleaner. Opening braces can go on a newline if you like, but they should be there. For such simple programs, using single letter variable names is fine, but normally they should be descriptive and self documenting.

#include <stdio.h>

int main() {
    unsigned long long n = 600851475143ULL;

    while ((n != 2) && !(n % 2)) {
        n >>= 1;
    }
   
    while ((n != 3) && !(n % 3)) {
        n /= 3;
    }

    for (unsigned long long i = 5, s = 2; (i * i) <= n; i += (2 + (s ^= 2))) {
        while ((n != i) && !(n % i)) {
            n /= i;
        }
    }

    printf("%llu\n", n);
    return 0;
}

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