Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
amano
4 / 3 / 0
Регистрация: 12.06.2010
Сообщений: 21
#1

Найдите сумму всех одиннадцати простых чисел, которые можно укорачивать как слева направо, так и справа налево. - C++

14.06.2010, 13:11. Просмотров 711. Ответов 4
Метки нет (Все метки)

Задача 37
Найдите сумму всех одиннадцати простых чисел, которые можно укорачивать как слева направо, так и справа налево.

Число 3797 обладает интересным свойством. Будучи само по себе простым числом, из него можно последовательно выбрасывать цифры слева направо, число же при этом остается простым на каждом этапе: 3797, 797, 97, 7. Точно таким же способом можно выбрасывать цифры справа налево: 3797, 379, 37, 3.

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

ПРИМЕЧАНИЕ: числа 2, 3, 5 и 7 таковыми не считаются.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2010, 13:11     Найдите сумму всех одиннадцати простых чисел, которые можно укорачивать как слева направо, так и справа налево.
Посмотрите здесь:

Найти сумму элементов массива, которые больше своих "соседей" справа и слева C++
C++ Приписать к числу 1022 одновременно слева и справа по одной цифре так, чтобы полученное число делилось на 7, 8 и 9
C++ Написать программу, которая выделяет любим способом в тексте слова палиндромы (слова, которые читаются одинаково справа налево и слева направо)
Задано целое число N. Найдите сумму простых чисел до N C++
C++ Дано число А. Найдите 5 простых чисел которые больше А.
C++ Найдите сумму первых n натуральных чисел, которые являются полными квадратами
C++ Вывести на экран все числа-палиндромы (числа, которые одинаково читаются как слева так и справа)
C++ Найти сумму всех простых чисел в интервале от 0 до 1000000
C++ К числу 43 припишите слева и справа по одной цифре так, чтобы полученное число делилось на 45
Вывести элементы массива, которые читаются слева направо и справа налево одинаково C++
Данное четырехзначное число читается одинаково слева направо и справа налево C++
Каждое слово преобразовать так, чтобы оно читалось слева направо C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir616
111 / 111 / 3
Регистрация: 05.07.2009
Сообщений: 224
14.06.2010, 15:14     Найдите сумму всех одиннадцати простых чисел, которые можно укорачивать как слева направо, так и справа налево. #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
#include <iostream>
using namespace std;
bool SimpleNumber(int number)
{
    bool result = true;
    for(int i = 2; i <= number/2; i++)
        if(number % i == 0)
        {
            result = false;
            break;
        }
    return result;
}
 
bool InterestedNumber(int number)
{
    bool result = true;
    for(int i = 1; number > 1; i *=10)
    {
        number /= i;
        if(number <= 1)
            break;
        if(!SimpleNumber(number))
        {
            result = false;
            break;
        }
    }
    return result;
}
int main()
{
    int sum = 0, count = 1;
    for(int i = 11; i < 10000; i++)
    {
        if(InterestedNumber(i))
        {
            sum += i;
            count++;
        }
        if(count == 11)
            break;
    }
    cout << sum << endl;
    return 0;
}
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
14.06.2010, 15:40     Найдите сумму всех одиннадцати простых чисел, которые можно укорачивать как слева направо, так и справа налево. #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
#include<iostream>
#include<string.h>
#include<math.h>
using namespace  std; 
int numlenth(unsigned  long num)
{       
       int i;
        for ( i = 1; num /= 10; ++i )
                ;
        return i;
}
bool is_simple (unsigned  long num)
{
    if (num <= 1)
        return false;
    for(unsigned  long del=2; del<num; del++)
        if( num  % del==0)
            return false;
    return true;
}
bool is_interesting(unsigned  long num)
{
    if(!is_simple(num))return false;
    if(numlenth(num)<=1) return false;
    unsigned  long test1=num,test2=num;
    for (int i = numlenth(num)-1; i > 0 ; i--)
        if(!is_simple(test2= test2 % (unsigned  long)(pow((float)10,i))))
            return 0;
    for(int i=1; i<numlenth(num); i++)      
        if (!is_simple(test1/=10))
            return 0;
    return 1;
}
int main ()
{
    setlocale(LC_ALL,"rus");
    cout<<"поиск чисел\n";
    unsigned  long iterator=10;
    int count=0, sum=0;
    while(count<11)
    {
        if(is_interesting(iterator))
            {
                count++;
                sum+=iterator;
                cout<<iterator<<" целевое число длиной "<<numlenth(iterator)<<", сумма "<<count<<" чисел равна "<<sum<<endl;
            }
        iterator++; 
    }
 
    system("pause");
  return 0;
}
тут с проверкой..
ток вот хз - какого размера 11ое число.. чето оно не находится.
rrrFer
Заблокирован
14.06.2010, 15:53     Найдите сумму всех одиннадцати простых чисел, которые можно укорачивать как слева направо, так и справа налево. #4
mrMRak, вроде-бы нашлось
Миниатюры
Найдите сумму всех одиннадцати простых чисел, которые можно укорачивать как слева направо, так и справа налево.  
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
14.06.2010, 15:54     Найдите сумму всех одиннадцати простых чисел, которые можно укорачивать как слева направо, так и справа налево. #5
ухтыжежик.. я не такой терпеливый оказался =)
Yandex
Объявления
14.06.2010, 15:54     Найдите сумму всех одиннадцати простых чисел, которые можно укорачивать как слева направо, так и справа налево.
Ответ Создать тему
Опции темы

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