Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
sinsobaki
0 / 0 / 0
Регистрация: 23.01.2019
Сообщений: 6
1

Найти целые числа, которые при возведении в 3, или 4, или 5 степень дают палиндромы

23.01.2019, 07:24. Просмотров 520. Ответов 2
Метки нет (Все метки)

Найдите целые числа, которые при возведении в 3, или 4, или 5 степень дают палиндромы, например, 113 = 1331.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2019, 07:24
Ответы с готовыми решениями:

Найти числа от 1 до 99 - палиндромы, которые при возведении в квадрат также дают палиндромы (используя циклы)
Задание: Натуральное число является палиндромом, если его запись читается одинаково с начала и с...

Найти все палиндромы в диапазоне от n до m, которые при возведении в квадрат также дают палиндром
програма Найти все числа палиндромы в диапазоне от n до m которые при возведении в квадрат так же...

Найти все целые числа, из интервала [35; 60], что при делении на 7 дают остаток 1, 2 или 5
1.Напечатайте все целые числа, из интервала , что при делении на 7 дают остаток 1, 2 или 5.

Найти все меньшие 100 натуральные числа, которые при возведении в квадрат дают палиндром.
Назовем натуральное число палиндромом, если его запись читается одинаково с начала и с конца...

Найти все меньшие 100 натуральные числа, которые при возведении в квадрат дают палиндром
Назовём натуральное число палиндромом, если его запись читается одинаково как с начала так и с...

2
SomniPhobia
354 / 257 / 102
Регистрация: 22.11.2017
Сообщений: 716
23.01.2019, 10:23 2
Привет!
Вот код.
Помолись, чтобы у меня по дифференциальным уравнениям в ведомости уже было проставлено отлично.
Интересно, программа, созданная на этом коде когда нибудь завершится? Теоретически - да. А на практике сколько часов уйдёт на её работу? По сути, в задании нет ограничения, до скольки нужно числа найти.

C++
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <windows.h>
#include <cmath>
#include <string>
#include <algorithm>
#include <limits>
#include <sstream>
#include <iomanip>
 
using namespace std;
 
bool is_palindrome(const double &);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    system("color 0A");
 
    auto double_max = (std::numeric_limits<double>::max)();
    double n = 1u;
    for (;;++n)
    {
        auto pow3 = pow(n, 3u);
        auto pow4 = pow(n, 4u);
        auto pow5 = pow(n, 5u);
        if (
            n >= double_max ||
            pow3 >= double_max ||
            pow4 >= double_max ||
            pow5 >= double_max
            )
        {
            break;
        }
        if (is_palindrome(pow3))
        {
            cout << n << "^3 = " << fixed << setprecision(0u) << pow3 << endl;
            //system("pause");
        }
        if (is_palindrome(pow4))
        {
            cout << n << "^4 = " << fixed << setprecision(0u) << pow4 << endl;
            //system("pause");
        }
        if (is_palindrome(pow5))
        {
            cout << n << "^5 = " << fixed << setprecision(0u) << pow5 << endl;
            //system("pause");
        }
    }
    cout << "Завершено" << endl;
 
    system("pause");
    return 0;
}
 
bool is_palindrome(const double &n)
{
    string n_str;
    stringstream ss;
    ss << fixed << setprecision(0u) << n;
    ss >> n_str;
    string n_str_reverse(n_str);
    reverse(n_str_reverse.begin(), n_str_reverse.end());
    return n_str == n_str_reverse;
}
0
Миниатюры
Найти целые числа, которые при возведении в 3, или 4, или 5 степень дают палиндромы  
SomniPhobia
354 / 257 / 102
Регистрация: 22.11.2017
Сообщений: 716
23.01.2019, 10:51 3
Улучшил код.

C++
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <windows.h>
#include <cmath>
#include <string>
#include <algorithm>
#include <limits>
#include <sstream>
#include <iomanip>
 
using namespace std;
 
bool is_palindrome(const double &);
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    system("color 0A");
 
    auto double_max = (std::numeric_limits<double>::max)();
    double n = 1u;
    size_t count = 0u;
    for (;;++n)
    {
        auto pow3 = pow(n, 3u);
        auto pow4 = pow(n, 4u);
        auto pow5 = pow(n, 5u);
        stringstream ss;
        string pow5_str;
        ss << fixed << setprecision(0u) << pow5;
        ss >> pow5_str;
        if (
            n >= double_max ||
            pow3 >= double_max ||
            pow4 >= double_max ||
            pow5 >= double_max ||
            pow5_str.size() > 307u
            )
        {
            break;
        }
        if (is_palindrome(pow3))
        {
            cout << n << "^3 = " << fixed << setprecision(0u) << pow3 << endl;
            //system("pause");
        }
        if (is_palindrome(pow4))
        {
            cout << n << "^4 = " << fixed << setprecision(0u) << pow4 << endl;
            //system("pause");
        }
        if (is_palindrome(pow5))
        {
            cout << n << "^5 = " << fixed << setprecision(0u) << pow5 << endl;
            //system("pause");
        }
        if (count == 100000u)
        {
            cout << "Сейчас было подвергнуто проверке число " << n << endl;
            cout << "pow5_str.size() = " << pow5_str.size() << endl;
            count = 0u;
        }
        ++count;
    }
    cout << "Завершено" << endl;
 
    system("pause");
    return 0;
}
 
bool is_palindrome(const double &n)
{
    string n_str;
    stringstream ss;
    ss << fixed << setprecision(0u) << n;
    ss >> n_str;
    string n_str_reverse(n_str);
    reverse(n_str_reverse.begin(), n_str_reverse.end());
    return n_str == n_str_reverse;
}
0
Миниатюры
Найти целые числа, которые при возведении в 3, или 4, или 5 степень дают палиндромы  
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2019, 10:51

Найти те числа последовательности, которые при делений на 7 дают остаток 1,2 или 5
1)Даны натуральные числа n,q1....qn.Найти те числа q1 последовательности q1...qn которые при...

вводятся числа a и b. Надо найти сумму таких чисел в диапазоне [a;b], которые при возведении в квадрат дают число с последней цифрой 6.
Помогите пожалуйста написать программку, вот задание - вводятся числа a и b. Надо найти сумму таких...

Данные натуральные числа от 35 до 87. Найти и напечатать те из них, которые при делении на 7 дают остаток 1, 2 или 5
Помогите пожалуйста. Данные натуральные числа от 35 до 87. Найти и напечатать те из них, которые...


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

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

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