@Tammana can u pls give me the logic of the above code !
On Tue, Sep 20, 2011 at 8:35 AM, Tamanna Afroze <[email protected]> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> 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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/algogeeks?hl=en.