Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
39 / 39 / 20
Регистрация: 23.04.2012
Сообщений: 462
Записей в блоге: 2
1

Нахождение делителя

22.04.2016, 13:02. Показов 1027. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Имеется простое число 2^32 +1. У числа имеется 2 делителя, которые не равны единице и самому числу. Нужно вывести эти делители в выходном файле output.txt по возрастанию. Спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.04.2016, 13:02
Ответы с готовыми решениями:

Нахождение наименьшего нечетного делителя
Здравтвуйте уважаемые форумчане! Подскажите пожалуйста какие у меня ошибки и недочёты......

Нахождение наибольшего общего делителя
Borland C++ Найти наибольший общий делитель двух натуральных чисел a и b.

Нахождение наибольшего общего делителя
Разработать и испытать рекурсивную функцию для вычисления наибольшего общего делителя двух...

Нахождение наибольшего общего делителя n чисел
Найти НОД (наибольший общий делитель) n чисел. Входные данные Первая строка содержит...

13
Модератор
Эксперт С++
13727 / 10923 / 6479
Регистрация: 18.12.2011
Сообщений: 29,155
22.04.2016, 13:21 2
Воспользуйтесь, например,
Нахождение наименьшего нечетного натурального делителя k (k≠1) любого заданного натурального числа n
как образцом.
Потом, покажите здесь, что получилось.
0
39 / 39 / 20
Регистрация: 23.04.2012
Сообщений: 462
Записей в блоге: 2
22.04.2016, 13:34  [ТС] 3
Цитата Сообщение от zss Посмотреть сообщение
Воспользуйтесь, например,
Нахождение наименьшего нечетного натурального делителя k (k≠1) любого заданного натурального числа n
как образцом.
Потом, покажите здесь, что получилось.
На паскале пытался, но тут не помещается это число в int...
А на с++ не особо догоняю...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses crt;
var ch,otv:longint;
function Delitel(ch:longint):longint;
var kol,i:longint;
begin
 kol:=0;
 for i:=1 to ch do
  if (ch mod i)=0 then inc(kol);
 Delitel:=kol;
end; 
Begin
 ClrScr;
 write('Vvedite chislo: ');
 readln(ch);
 otv:=Delitel(ch);
 writeln('Otvet: ',otv);
 readkey;
End.
0
Модератор
Эксперт С++
13727 / 10923 / 6479
Регистрация: 18.12.2011
Сообщений: 29,155
22.04.2016, 13:36 4
Число поместиться в "long long int"
0
39 / 39 / 20
Регистрация: 23.04.2012
Сообщений: 462
Записей в блоге: 2
22.04.2016, 13:44  [ТС] 5
Цитата Сообщение от zss Посмотреть сообщение
Число поместиться в "long long int"
Ну это в с++... а в с++ сам пока не особо способен... может поможете?
0
Модератор
Эксперт С++
13727 / 10923 / 6479
Регистрация: 18.12.2011
Сообщений: 29,155
22.04.2016, 14:32 6
Ничего не меняйте, только вместо int напишите long long int
0
4 / 2 / 2
Регистрация: 08.01.2015
Сообщений: 10
22.04.2016, 15:21 7
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
#include <fstream>
#include <math.h>
 
typedef long long int longint;
longint GetDivisor(const longint i_number, longint num)
{
    for (longint i = num; i < i_number ; i ++)
        if (i_number % i == 0)
            return i;
    return 0;
}
 
int main()
{
    longint number = pow(2, 32) + 1;
    longint num = 2;
    longint divisor = GetDivisor(number, num);
 
    std::ofstream fout("output.txt");
 
    while (divisor != 0)
    {
        fout << divisor << "\n";
        divisor = GetDivisor(number, divisor + 1);
    }
    fout.close();
    return 0;
}
0
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
22.04.2016, 15:46 8
ledoxod, вы хотя бы представляете, сколько это времени займет, проверять в цикле каждое число от 2 до 4294967297?

На моем компе, например, займет это столько секунд: 346956 (96,5 часов).

А он у меня очень даже мощный.
0
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
22.04.2016, 15:49 9
Вот столько за секунду в цикле проверяется чисел на моем компьютере.
Миниатюры
Нахождение делителя  
0
4 / 2 / 2
Регистрация: 08.01.2015
Сообщений: 10
22.04.2016, 15:50 10
ну это был общий случай)
конкретно здесь можно и так
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
#include <math.h>
#include <fstream>
 
typedef long long int longint;
longint GetDivisor(const longint i_number)
{
    for (longint i = 2; i < i_number ; i ++)
        if (i_number % i == 0)
            return i;
    return 0;
}
int main()
{
    longint number = pow(2, 32) + 1;
    longint divisor = GetDivisor(number);
 
    std::ofstream fout("output.txt");
 
    fout << divisor << "\n";
    fout << number/divisor << "\n";
 
    fout.close();
    return 0;
}
0
39 / 39 / 20
Регистрация: 23.04.2012
Сообщений: 462
Записей в блоге: 2
25.04.2016, 11:01  [ТС] 11
Или так...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream> 
#include <fstream> 
using namespace std;
int main(){
    setlocale(LC_ALL, "rus");
    ofstream Work1("out1.txt");
    long long x = 2;
    for (int i = 0; i<31; i++)
    {
        x = x * 2;
    }
    x = x + 1;
    int j;
    for (j = 2; j<2147483647; j++)
    {
        if (x%j == 0) Work1 << j << endl;
    }
    Work1.close();
    return 0;
}
0
Объявлятель переменных
1220 / 406 / 320
Регистрация: 24.09.2011
Сообщений: 1,274
25.04.2016, 17:41 12
Цитата Сообщение от ramazan05duldug Посмотреть сообщение
Имеется простое число 2^32 +1. У числа имеется 2 делителя, которые не равны единице и самому числу.
Вы уж определитесь простое число или с делителями.
0
125 / 117 / 67
Регистрация: 07.11.2014
Сообщений: 788
25.04.2016, 17:54 13
Цитата Сообщение от ramazan05duldug Посмотреть сообщение
Или так...
В Вашем варианте будет выводить сразу все делители. Поставьте ограничение:
C++
1
2
3
4
5
6
int sch=0;
 for (int j = 2; j<2147483647; j++)
    {
        if (x%j == 0 && sch<2) {Work1 << j << " "<< endl; sch++;}
        if (sch==2) break;
    }
0
Объявлятель переменных
1220 / 406 / 320
Регистрация: 24.09.2011
Сообщений: 1,274
25.04.2016, 18:07 14
C++
1
2
3
4
5
6
7
8
9
int main()
{
    long long int r = 1;
    for (int i = 0; i < 32; r*=2, i++);
    r++;
    long long d = 3;
    while (r%d) d+=2;
    std::cout << d << ", " << r/d;
}
0
25.04.2016, 18:07
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.04.2016, 18:07
Помогаю со студенческими работами здесь

Рекурсия: нахождение наименьшего общего делителя
Написать рекурсивную функцию для нахождения наименьшего общего делителя Подскажите, пожалуйста,...

Быстрое нахождение максимального делителя числа
Всем привет! Столкнулся с такой проблемой, у меня дано число n \leq 10 ^ 18. Для использования...

Нахождение наибольшего общего делителя n целых чисел
Составить программу нахождения наибольшего общего делителя n целых чисел, используя функцию...

Нахождение наибольшего общего делителя для 6-и чисел
привет! у меня есть задача на нахождение наибольшего общего делителя для 6-и чисел ... нашел было...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Как работать с ветками (branch) в Git
InfoMaster 17.01.2025
Система контроля версий Git произвела революцию в процессе разработки программного обеспечения, предоставив разработчикам мощный инструмент для управления изменениями в коде. Одной из наиболее важных. . .
Как откатить последние коммиты в Git
InfoMaster 17.01.2025
Система контроля версий Git стала неотъемлемой частью современной разработки программного обеспечения, предоставляя разработчикам мощные инструменты для управления изменениями в коде. Одним из. . .
Что такое boilerplate и scaffold, чем они отличаются
InfoMaster 17.01.2025
В современном мире разработки программного обеспечения эффективность и скорость создания качественного кода играют crucial роль в успехе проектов. Разработчики постоянно ищут способы оптимизировать. . .
Чем отличаются ссылки и указатели в С++
InfoMaster 17.01.2025
В современном программировании на C++ эффективная работа с памятью является ключевым аспектом разработки качественного программного обеспечения. Указатели и ссылки представляют собой два. . .
В чем разница между PUT и POST
InfoMaster 17.01.2025
В современной веб-разработке правильное использование HTTP-методов играет ключевую роль в создании надежных и эффективных API-интерфейсов. Протокол HTTP прошел долгий путь развития с момента своего. . .
DTO, POCO и Value Object: что это такое, когда и как использовать
InfoMaster 17.01.2025
Введение в паттерны передачи данных В современной разработке программного обеспечения эффективное управление данными и их передача между различными слоями приложения являются ключевыми аспектами. . .
Что такое pull request в Git
InfoMaster 17.01.2025
В современной разработке программного обеспечения pull request в Git представляет собой ключевой механизм для эффективного взаимодействия между разработчиками при работе над общим кодом проекта. По. . .
Как вернуться к предыдущему коммиту в Git
InfoMaster 17.01.2025
Система контроля версий Git представляет собой мощный инструмент для управления изменениями в программном коде, который позволяет разработчикам эффективно отслеживать и контролировать историю. . .
Что такое паттерны программировани­я и проектирования
InfoMaster 17.01.2025
Роль паттернов в современной разработке программного обеспечения В современном мире разработки программного обеспечения паттерны проектирования стали неотъемлемой частью профессионального подхода. . .
Как добавить конструктор Яндекс Карт на сайт
InfoMaster 17.01.2025
Введение в API Яндекс Карт В современной веб-разработке интеграция картографических сервисов стала неотъемлемой частью многих проектов. API Яндекс Карт представляет собой мощный инструмент для. . .
Что такое javascript:void­­(0) и зачем это нужно
InfoMaster 17.01.2025
Когда вы сталкиваетесь с веб-разработкой, особенно с использованием JavaScript, одной из директив, которая часто встречается, является javascript:void(0). Это выражение вызывает интерес из-за своей. . .
Что такое оркестрация и хореография микросервисов
InfoMaster 17.01.2025
Введение в оркестрацию и хореографию микросервисов В современном мире разработки программного обеспечения микросервисная архитектура стала ключевым подходом к созданию масштабируемых и гибких. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru