Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Aviz__
805 / 597 / 161
Регистрация: 17.02.2014
Сообщений: 3,526
1

О совершенных числах

17.06.2015, 14:46. Просмотров 1084. Ответов 2
Метки нет (Все метки)

Совершенное четное число, больше 6, может быть найдено, как сумма кубов натуральных нечетных чисел. Например: 28 = 13 + 33, а 496 = 13 + 33 + 53 + 73.
Есть программа, которая находит количество этих кубов, по заданному совершенному четному числу. Но, ее счетчик цикла ограничен пределом int.
Как можно это ограничение обойти?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package perfectnumbers;
 
import java.math.BigInteger;
        
public class FindtNumbers {
        
       public static void main(String[] args) {
           final int COUNT_ITEM_SEQ = 2_000_000_000;  // константа близкая к пределу int
           BigInteger ss, bi, compare;
           ss = new BigInteger("0");
           bi = new BigInteger("0");
           compare = new BigInteger("8589869056");  // Сов. число, до которого ищется сумма кубов
           int i;    // переменная цикла, которая + 1, и есть число кубов
          
                 
        for( i =0; i < COUNT_ITEM_SEQ; i++) {
            bi = BigInteger.valueOf(2*i+1).pow(3);     // куб нечетного натурального числа
            ss =ss.add(bi);
            
            if(compare.compareTo(ss) == 0)
                break;
           } // end for
            
        System.out.println(i + 1);  // т.к. i начинается с ноля
  } // end main
} // end class
28 -- 2 куба
496, -- 4 куба
8128, -- 8 кубов
33550336, -- 64 куба
8589869056, -- 256 куба
137438691328, -- 512 куба
2305843008139952128, -- 32 768 кубов
2658455991569831744654692615953842176, -- 1 073 741 824 куба
191561942608236107294793378084303638130997321548169216 --- ????
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2015, 14:46
Ответы с готовыми решениями:

Поиск всех совершенных чисел из заданного диапазона
Задача в java: Написать программу поиска всех совершенных чисел из диапазона Long. Помогите,...

Char отображается в числах
При выполнении такой программы результаты следующие: package pkgchar; public class Char { ...

Сумма цифр в двузначных числах
С клавиатуры вводятся двузначные числа (натуральные), пока не будет введено другое число. ...

Вывести на экран сумму цифр во всех двузначных числах
С клавиатуры вводятся двузначные числа (натуральные), пока не будет введено другое число. Вывести...

Определить количество цифр в введенных числах и вывести на экран сколько цифр в первом и втором числах
ввести 2 числа, определить количество цифр в введеных числах и вывести на экран сколько цифр в...

2
Pablito
2836 / 2254 / 762
Регистрация: 12.05.2014
Сообщений: 7,892
Завершенные тесты: 1
17.06.2015, 14:51 2
что мешает использовать для счетчика не int а long или BigInteger ?
1
Aviz__
805 / 597 / 161
Регистрация: 17.02.2014
Сообщений: 3,526
17.06.2015, 15:30  [ТС] 3
Цитата Сообщение от Паблито Посмотреть сообщение
BigInteger
Как то не подумал, что его можно использовать, как счетчик
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2015, 15:30

Поиск совершенных чисел
Var i,n:longint; function P(x:longint):boolean; Var i,s:longint; begin S:=0; for i:=1 to x...

Поиск совершенных чисел
Дано натуральное число n, целые числа {a}_{1},...,{a}_{n}. Рассмотреть отрезки последовательности...

нахождение совершенных числел
Привет всем, вот мой код: #include &quot;iostream&quot; #include &quot;math.h&quot; #include &quot;stdlib.h&quot; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru