Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 37
1

Подскажите алгоритм подбора суммы простых чисел

17.09.2014, 17:58. Показов 4991. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание такое - проверить возможно ли с помощью суммы 3 простых чисел составить любое число от 6 до 100.
Задача решается только с помощью циклов!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2014, 17:58
Ответы с готовыми решениями:

Алгоритм подбора чисел, сумма которых равна определенному значению
Алгоритм подбора чисел, сумма которых равна определенному значению. То есть, случайно менять...

Алгоритм подбора чисел, сумма которых равна определенному значению
Есть число из 11 цифр, сума которых известна и равняется х, какой алгоритм нужен чтобы узнать все...

Вычисление суммы простых чисел
Написать программу, которая вычисляет сумму простых чисел от 1 до*n, введенного с клавиатуры....

Составить алгоритм-вычисление квадрата суммы двух чисел и алгоритм для вычисления функции
Здравствуйте!Мне нужно все с самого начала и точно,помогите пожалуйста! 1.составить...

18
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
17.09.2014, 18:08 2
Очень странное условие. Может вместо "...составить любое число..." там "...составить любое простое число..." ?

Добавлено через 2 минуты
Ибо если взять минимальные три простых числа (2, 3, 5), то их сумма уже попадает в диапазон от 6 до 100
0
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 37
17.09.2014, 18:12  [ТС] 3
нее..был такой математик Х.Гольдбах он сформулировал гипотезу, что любое число начиная с 6 может быть представлено в виде суммы трёх простых чисел...эту гипотезу надо проверить.

Добавлено через 1 минуту
Простые числа 1+2+3=6

Добавлено через 2 минуты
1+3+3=7
2+3+3=8
0
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
17.09.2014, 18:12 4
Простые числа 1+2+3=6
Мне кажется, или теория уже опровергнута, так как 1 не является простым числом
1
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 37
17.09.2014, 18:15  [ТС] 5
ну значит 2+2+2

Добавлено через 26 секунд
да 1 не является простым числом)
0
6832 / 4892 / 2066
Регистрация: 02.02.2014
Сообщений: 13,051
17.09.2014, 18:36 6
википедия чего-то не знает?
что за косяки с ссылками?
Код
https://ru.wikipedia.org/wiki/Проблема_Гольдбаха
0
5 / 5 / 4
Регистрация: 13.05.2014
Сообщений: 130
17.09.2014, 18:49 7
Типа так)))

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# include <iostream>
using namespace std;
 
void main ()
{
    int sum=0, i, j, k;
    int mas [25] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};
    for (i=0;i<=25;i++)
    {
        for(j=i;j<=25;j++)
        {
            for(k=j;k<25;k++)
            {
                sum=mas[i]+mas[j]+mas[k];
                if (sum>=6&&sum<=100)
                {
                    cout<<mas [i]<<'+'<<mas[j]<<'+'<<mas [k]<<'='<<sum<<'\n';
                }
            }
        }
    }
}
1
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
17.09.2014, 18:49 8
Задание такое - проверить возможно ли с помощью суммы 3 простых чисел составить любое число от 6 до 100.
1) Берется готовая таблица простых чисел от двух до ста.
2) Делается три вложенных цикла, перебирающих три слагаемых из таблицы.
что за косяки с ссылками?
Форум, похоже, не переваривает кириллицу в ссылках.
1
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 37
17.09.2014, 18:51  [ТС] 9
друзья, забыл сказать массив нельзя использовать
0
Krasme
17.09.2014, 18:53
  #10

Не по теме:

Цитата Сообщение от Renji Посмотреть сообщение
Форум, похоже, не переваривает кириллицу в ссылках.
всегда переваривал, а тут подавился?

0
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
17.09.2014, 19:00 11
Вижу только такую реализацию:
Первый цикл перебирает значение от 6 до указанного, но меньше 100 (включительно), остальные три цикла перебирают простые числа, в самом внутреннем если сумма трёх наших циклов равна введённому числу, то выводим сообщение и завершаем программу.
После окончания все циклов выводим другое сообщение, что теория опровергнута. Как-то так.
1
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
17.09.2014, 19:13 12
друзья, забыл сказать массив нельзя использовать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int array(int index)
{
    int pos=0;
    for(int N=2;;++N)
    {
        bool check=true;
        for(int div=3;check&&div<N;div+=2)
            check=check&&(N%div);
        if(check)
        {
            if(pos==index)
                return N;
            ++pos;
        }
    }
}
1
6832 / 4892 / 2066
Регистрация: 02.02.2014
Сообщений: 13,051
17.09.2014, 19:16 13
если массивы использовать нельзя, то еще циклы потребуются для проверки, что каждое слагаемое - простое число.
1
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 37
17.09.2014, 21:24  [ТС] 14
А как можно сделать проверку на простое число или нет внутри циклов?

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int i=6;i<=100;i++)
        {...
           for(int j=1;j<=100;j++)
           {   ...
              for (int k=1;k<=100;k++)
                {  ...
                    for(int m=1;m<=100;k++)
                        {...
                            i=j+k+m;
 
 
                        }
                }
           
            }
0
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
17.09.2014, 21:31 15
А как можно сделать проверку на простое число или нет внутри циклов?
Оставшись в школе на второй год и выучив что такое "простое число".
PS Проверить наличие у числа делителей отличных от единицы и самого числа. В отдельной функции.
1
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 37
17.09.2014, 21:35  [ТС] 16
да это я всё знаю.

Добавлено через 37 секунд
я не понимаю как внедрить это можно

Добавлено через 39 секунд
тем более что функции использовать нельзя

Добавлено через 15 секунд
условие задачи такое...

Добавлено через 43 секунды
как в том анекдоте про наркоманов "были б спички был бы рай..."
0
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
17.09.2014, 21:45 17
Значит, трижды скопипастить цикл проверяющий наличие у числа делителей.
0
0 / 0 / 0
Регистрация: 01.06.2014
Сообщений: 37
17.09.2014, 21:46  [ТС] 18
это я пробовал
0
Guardian of Asgaard
377 / 319 / 197
Регистрация: 11.11.2013
Сообщений: 1,046
18.09.2014, 12:22 19
Georgg, выводит на экран результаты сложения всех простых чисел, сумма которых от 6 до 100. Короче мужик был прав

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
#include <iostream>
 
int simple(int n) {
    if ( n > 1 ) {
        for ( int i = 2; i * i <= n; i++ ) {
            if ( n % i == 0 ) {
                return 0;
            }
        }
        return 1;
    }
    return 0;
}
 
int main() {
    for ( int i = 6, flag = 0; i < 101; i++ ) {
        for ( int j = 2; j < i; j++ ) {
            if ( simple(j) && flag == 0 ) {
                for ( int k = 2; k <= j; k++ ) {
                    if ( simple(k) && flag == 0 ) {
                        for ( int l = 2; l <= k; l++ ) {
                            if ( simple(l) && j + k + l == i ) {
                                flag = 1;
                                std::cout << j << "+" << k << "+" << l << "=" << i << std::endl;
                                break;
                            }
                        }
                    }
                }
            }
        }
        flag = 0;
    }
 
    return 0;
}
Над оптимизацией особо не думал, решал в лоб)
0
18.09.2014, 12:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.09.2014, 12:22
Помогаю со студенческими работами здесь

Алгоритм нахождения простых чисел
Вопросы: 1) Нужен алгоритм проверки числа (является ли число простим). Нужно чтобы алгоритм был...

Алгоритм нахождения простых чисел
Здравствуйте, совсем недавно начал обучения Си и вроде все шло хорошо до того как мне попался один...

Алгоритм нахождения простых чисел
Не могу найти в интернете нормальный код алгоритма нахождения простых чисел. Помогите пожалуйста. ...

Алгоритм нахождения простых чисел
Не так давно начал изучать с++. Вот попытался написать программу которая вычисляет простое ли число...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru