I don't know whether my one is good algorithm or not, but it gives somewhat
good output. It is in Java.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package prime;

/**
 *
 * @author Tamanna Afroze
 */

import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.util.StringTokenizer;

public class Prime {

    /**
     * @param args the command line arguments
     */
    boolean haveFactor(int iNumber){
        int iFactors[] = new int[10000];
        int iIndex = 0;
        iFactors[iIndex] = 1;
        iIndex++;
        iFactors[iIndex] = iNumber;
        iIndex++;

        if(iNumber != 2 && (iNumber%2)==0){
            iFactors[iIndex] = 2;
            iIndex++;
            iNumber /=2;
            if( iNumber != 2 ){
                iFactors[iIndex] = iNumber;
                iIndex++;
            }
            int iLoop = 2;
            if( iNumber != 2 ){
                while((iNumber%2) != 1){
                    iFactors[iIndex] = 2*iLoop;
                    //System.out.println("Here :" + iFactors[iIndex]);
                    iIndex++;
                    iNumber /= 2;
                    iFactors[iIndex] = iNumber;
                    iIndex++;
                    iLoop *= 2;
                }
            }
            if(iNumber != 3 && (iNumber%3)==0){
                iFactors[iIndex] = 3;
                iIndex++;
                iNumber /=3;
                if( iNumber != 3 ){
                    iFactors[iIndex] = iNumber;
                    iIndex++;
                }
                iLoop = 3;
                if( iNumber != 3 ){
                    while((iNumber%3) != 1){
                        iFactors[iIndex] = 3*iLoop;
                        //System.out.println("Here :" + iFactors[iIndex]);
                        iIndex++;
                        iNumber /= 3;
                        if( iNumber != 3 ){
                            iFactors[iIndex] = iNumber;
                            iIndex++;
                        }
                        iLoop *= 3;
                    }
                }
            }
            for(int i =0; i<iIndex; i++){
                //System.out.println(iFactors[i]);
            }
            return true;
        }
        else if(iNumber != 3 && (iNumber%3)==0){
            iFactors[iIndex] = 3;
            iIndex++;
            iNumber /=3;
            if( iNumber != 3 ){
                iFactors[iIndex] = iNumber;
                iIndex++;
            }
            int iLoop = 3;
            while(iNumber != 3 && (iNumber%3) != 1){
                iFactors[iIndex] = 3*iLoop;
                //System.out.println("Here :" + iFactors[iIndex]);
                iIndex++;
                iNumber /= 3;
                if( iNumber != 3 ){
                    iFactors[iIndex] = iNumber;
                    iIndex++;
                }
                iLoop *= 3;
            }
            for(int i =0; i<iIndex; i++){
                //System.out.println(iFactors[i]);
            }
            return true;
        }
        else{
            return false;
        }
    }

    public void Operation(){
        String number,numberofinput,first,second;
        int index = 0,iFirst = 0,iSecond = 0, iNumberOfInput = 0;

        try{
            File file = new File("input.txt");
            FileReader fileReader = new FileReader(file);
            BufferedReader bufferedReader = new BufferedReader(fileReader);

            FileWriter fileWriter = new FileWriter("output.txt");
            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

            while((number = bufferedReader.readLine()) != null){
                if(index == 0){
                    numberofinput = number;
                    iNumberOfInput = Integer.parseInt(numberofinput);
                }
                else{
                    StringTokenizer tokenizer = new StringTokenizer(number);
                    while(tokenizer.hasMoreTokens()){
                        first = tokenizer.nextToken();
                        second = tokenizer.nextToken();
                        System.out.println("First: " + first + " Second: " +
second);
                        iFirst = Integer.parseInt(first);
                        iSecond = Integer.parseInt(second);
                    }
                    System.out.println("Integer Version First: " + iFirst +
" Second: " + iSecond);
                    if(iFirst >= 1 && iSecond >= iFirst && iSecond <=
1000000000 && iSecond-iFirst <= 100000){

                        for(int k = iFirst; k<=iSecond ; k++ ){
                            if(k!=1){
                                boolean result = haveFactor(k);


if(!result){
                                    String sPrime = Integer.toString(k);
                                    bufferedWriter.write(sPrime);
                                    bufferedWriter.newLine();
                                }
                                iFirst++;
                            }
                        }
                    }
                    else{
                        System.out.println("Input Error Occured: m and n are
not in the specified Range");
                    }
                }
                index++;
                bufferedWriter.newLine();
            }
            bufferedWriter.flush();
            bufferedWriter.close();
        }
        catch(IOException iox){
            iox.printStackTrace();
        }

    }

    public static void main(String[] args) {
        // TODO code application logic here
        Prime object = new Prime();
        object.Operation();
        //boolean bHave = object.haveFactor(7);
        //System.out.println("The output of the Factor function is: " +
bHave);
    }
}



Sincerely,
Tamanna

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to