2016-02-10 7 views
0

В java я пытаюсь сделать программу для выполнения моей математической домашней работы (не на самом деле обманывать, просто пытаюсь изучить Java), и у меня есть цикл for, который меня достает все факторы данного числа, но я не могу понять, как сохранить все выходы цикла for в парах (если это возможно), чтобы позже проверить математическую проблему, чтобы решить ее, вот код. (будет добавлена ​​необходимая информация по запросу, первый пост)Как сохранить все выходы цикла for - java

import java.util.Scanner; 

public class factoring { 

public static void main(String[] args) { 
    String varible; 
    String secondOperator; 
    String firstOperator; 
    int power; 
    int greatestCommonFactor; 
    long factorTo; 
    long factorBy; 
    String factors = null; 
    Scanner userInput = new Scanner(System.in); 

    System.out.println("Please enter the greatest common factor (Default to 1)"); 
    greatestCommonFactor = userInput.nextInt(); 

    System.out.println("Please input the varible"); 
    varible = userInput.next(); 

    System.out.println("Please enter the power"); 
    power = userInput.nextInt(); 

    System.out.println("Please enter the first operator"); 
    firstOperator = userInput.next(); 

    System.out.println("Please enter what your factoring to"); 
    factorTo = userInput.nextInt(); 

    System.out.println("Please enter the second operator"); 
    secondOperator = userInput.next(); 

    System.out.println("Please enter what you're factoring by"); 
    factorBy = userInput.nextInt(); 

    for(int i = 1; i * i <= factorBy; i++) { 
     if (factorBy % i == 0) { 
      if (i * i != factorBy) factors = factorBy/i + " and " + i; 
     } 
    } 

} 

} 
+0

Возможно использование 2-мерного массива. – DevilsHnd

+0

Могу ли я получить пример того, как это будет работать для того, что я пытаюсь сделать? я искал некоторые вещи на нем, но я не совсем уверен, как реализовать его с тем, что я прочитал. –

+0

Что именно должны содержать пары? Если бы вы добавили пример ожидаемого результата, было бы легче понять. – Frank

ответ

0

Вы можете использовать файл, чтобы сохранить результат.

попробуйте следующий код

String loc = "Desktop/Factors of "+factorBy; 
File outFile = new File(loc); 

if(!outFile.exists()) 
{ 
    outFile = new File(loc); 
} 
try{ 

    fout = new FileOutputStream(outFile); 
} 
catch(Exception e){ 
    e.printStackTrace(); 
} 


for(int i = 1; i * i <= factorBy; i++) { 
    if (factorBy % i == 0) { 
     if (i * i != factorBy){ 
      factors = factorBy/i + " and " + i; 


      try{ 
       fout.write(factors.getBytes()); 
       fout.write("\n".getBytes()); 

      } 
      catch(Exception e) 
      { 
       e.printStackTrace(); 
      } 

      System.out.println("factors:"+factors); 
     } 
    } 
} 
1

Существует гораздо более простой способ вычислить наибольший общий делитель или делитель, называется алгоритмом Евклида.

int gcd(int a, int b) { 
    while(0 != b) { 
     r = a%b; a = b; b = r; 
    } 
    return a; 
} 
Смежные вопросы