Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2013, 07:53   #1
dread_92
Новичок
Джуниор
 
Регистрация: 02.05.2013
Сообщений: 1
По умолчанию Нужно преобразовать тип данных

Здравствуйте!Есть программа которая расскладывает число на множители.Проблема в том что в textField получается вводить числа до 10^6,а надо что вычисляло намного большие числа.

Вот здесь сам метод вычисления:
Код:
 
    @Override
    public void actionPerformed(ActionEvent e) {
              String  text = expressionField.getText();
      
        N = Integer.parseInt(text);
       
if(N>8){
     if(N%2==0){  listModel.addElement(N+"=2*"+N/2+newline);
        expressionField.selectAll();}
    
    else{
        int Result=-1;
 for(I=2;I<=sqrt1(N,3);I++){
     if((N%I)==0){
         Result=I;
         p=(int) (N/I);
         
     }
 }
 if(Result<0){
 for(k=1;k<=sqrt1(N,3);k++){
   for(d=0;d<=sqrt2(N,k);d++){
       q=(int) (4*k*N);
        A=sqrt1(q,2)+d;
        int q2=A*A-q;
        B=sqrt1(q2,2);
          if(B>0){
        dd = sqrt3(A-B, N);
        if (1 < dd) 
        {if(dd < N){
            Result=dd;
            p=(int) (N/dd);}}
      
        }
     
   }
      
    }
 } if(Result>0){
     
 
        listModel.addElement(N+"="+Result+"*"+p+newline);
        expressionField.selectAll();}
 else   listModel.addElement(N+"   "+"Простое число"+newline);

        expressionField.selectAll();
}
 }      
        
 else{
         listModel.addElement("Натуральное число должно быть больше 8"+newline);
         expressionField.selectAll();}

Последний раз редактировалось Stilet; 02.05.2013 в 09:22.
dread_92 вне форума Ответить с цитированием
Старый 02.05.2013, 12:48   #2
GreenWizard
мальчик-помогай =)
Форумчанин
 
Регистрация: 16.09.2010
Сообщений: 522
По умолчанию

Думаю, что беда не в вводе больших чисел (у int лимит в 2 * 10^9, что больше указанного вами числа), а в скорости вычисления и/или в том как вы храните результаты (про корректность алгоритма я молчу вовсе)
см. http://ru.wikipedia.org/wiki/%D4%E0%...F7%E8%F1%E5%EB про разложение на множите
судя же по коду, вы пытаетесь определить простое ли число, а не множители.
GreenWizard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой тип данных использовать для хранения сэмплов wav файла, если нужно его конвертировать в lossless? Niaden Visual C++ 1 30.10.2012 18:59
Java,преобразовать тип al-udmi Помощь студентам 0 24.04.2012 15:43
ОЧЕНЬ нужно создать собственный тип данных в Delphi Dima_Dima Общие вопросы Delphi 4 16.01.2011 00:45
Подскажите! Как преобразовать определенный тип в array of byte BrainIce Общие вопросы Delphi 3 19.05.2009 17:22
можно тип переменной word преобразовать в integer мандарин Общие вопросы Delphi 7 01.06.2007 20:04