@Tammana can u pls give me the logic of the above code ! On Tue, Sep 20, 2011 at 8:35 AM, Tamanna Afroze <afroze...@gmail.com> wrote:
> > 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. > -- @ |3 # ! /\/ @ \./ -- 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.