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

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

Войти
Регистрация
Восстановить пароль
 
Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
#1

Сдвоенные числа - C++

02.12.2013, 20:09. Просмотров 244. Ответов 9
Метки нет (Все метки)

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
#include <cstdlib>
#include <iostream>
#include <Math.h>
using namespace std;
 
int main(int argc, char *argv[])
{
    int n, pred, tek, i, j, t = 0; 
    cout<<"Vvedite granicu diapazona : "; cin>>n;
   for (i = 2; i <= n; i++){
        for ( j = 0; j < sqrt(n) + 1; j++){
            if ( n % j == 0) {
                cout<<"i = "<<i;
                tek = i;
                t++;
                }
            }
    if(t == 2){
            if(tek - 2 == pred) {
                cout<<pred<<tek;
                t = 0;  
            }          
        }
    else pred = tek;
       }
    
    system("pause");
    return EXIT_SUCCESS;
}
Если p и q - простые числа, и справедливо что q = p + 2, то они наз-ся сдвоенные. Найти все сдвоенные числа меньшие n. Я совсем запутался в этой задаче...алгоритм нахождения простых чисел нашел на форуме. Его не понял. Кто нибудь может объяснить его, или посоветовать попроще? И помочь с задачей.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2013, 20:09     Сдвоенные числа
Посмотрите здесь:

Распечатать все простые сдвоенные числа меньшие заданного - C++
Здравствуйте! Помогите написать программу Если p и q - простые числа и q = p+2, то они называются простыми сдвоенными числами или...

Исключить из строки S все сдвоенные пробелы - C++
задание Дана строка S, состоящая из латинских букв, пробелов и знаков препинания, а также буквенные символы C1 и C2. Требуется: ...

Либо удваивая одиночные, либо заменяя сдвоенные одним символом, привести строку к заданному виду - C++
Помогите решить эту задачу, я написал решение, но оно получилось огромным (73 строчки), непонятным и страшным. Это пятая задача из...

Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми - C++
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми. ...

Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел? - C++
Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел?

Ввести в программу строку (числа, латиница), считать только числа, записать числа в массив - C++
Нужна помощь! Срочно! Нужно ввести в программу строку (числа, латиница), считать только числа, записать числа в массив. Помогите,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jurok_85
241 / 224 / 77
Регистрация: 21.02.2013
Сообщений: 518
Завершенные тесты: 1
02.12.2013, 20:50     Сдвоенные числа #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
int simple(int n){
    for(int i=2;i<= n/2;i++) if( (n%i)==0 ) return 0;
return 1;
}
int main()
{
 
         for(int i=2;i < 100;i++){
             for (int j = i + 2; j < 100; j++){
             if(simple(i)&& simple(j)&& j == i+2)
               cout << i << " " << j << " " << endl;
             }
         }
return 0;
 
 
}
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.12.2013, 20:52     Сдвоенные числа #3
Цитата Сообщение от Relike Посмотреть сообщение
Кто нибудь может объяснить его, или посоветовать попроще?
Алгоритм простой, если число n не делится на числа от 1 до sqrt(n), то оно простое. Только Ваш вариант немного не корректен.
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
   int n, pred, tek, i, j, t; 
   
   pred = 2;
   cout << "Vvedite granicu diapazona : "; 
   cin >> n;
   for (i = 3; i <= n; i++)
   {
      t = 0;
      for (j = 0; j < sqrt(i) + 1; j++)
      {
         if ( i % j == 0) 
            t = 1;
      }
      tek = i;
      if(!t)
      {
         if(tek - 2 == pred)
            cout << pred << ' ' << tek << endl;
         pred = tek;
      }
   }
 
   system("pause");
   return EXIT_SUCCESS;
}
Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
02.12.2013, 21:31  [ТС]     Сдвоенные числа #4
Цитата Сообщение от kazak Посмотреть сообщение
Алгоритм простой
Спасибо, но не работает. Вышибает саму консоль....
Байт
Эксперт C
15831 / 10158 / 1522
Регистрация: 24.12.2010
Сообщений: 19,146
02.12.2013, 21:33     Сдвоенные числа #5
Цитата Сообщение от kazak Посмотреть сообщение
j < sqrt(i)
<= А то 49 будет простым Эти грабли мы уже проходили...
j=0 тоже некоторые сомнения навевает... Как на 0 делить-то будем?

Добавлено через 1 минуту
Цитата Сообщение от Relike Посмотреть сообщение
Вышибает саму консоль....
Что и требовалось доказать.
Я правда, не очень понимаю это выражение "Вышибает САМУ консоль"
kazak
3034 / 2355 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.12.2013, 21:34     Сдвоенные числа #6
Про ноль забыл совсем)
Цитата Сообщение от Байт Посмотреть сообщение
<= А то 49
у ТС
Цитата Сообщение от kazak Посмотреть сообщение
j < sqrt(i) + 1
Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
02.12.2013, 21:34  [ТС]     Сдвоенные числа #7
Да, спасибо. Цикл от двух надо запускать.
Байт
Эксперт C
15831 / 10158 / 1522
Регистрация: 24.12.2010
Сообщений: 19,146
02.12.2013, 21:36     Сдвоенные числа #8
Цитата Сообщение от Relike Посмотреть сообщение
Сдвоенные числа
В классической литературе называется простые числа близнецы
Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
02.12.2013, 21:41  [ТС]     Сдвоенные числа #9
Мы же математический факультет. Надо же выпендриться

Добавлено через 2 минуты
Ребята спасибо большое! Задача решена. Особенная благодарность Казаку и Байту!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2013, 22:41     Сдвоенные числа
Еще ссылки по теме:

Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми - C++
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми. ...

Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ - C++
Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увличить второе число в пять раз с++ Добавлено через...

Сдвоенные буквы - Pascal ABC
Удалить в словах из каждой пары сдвоенных букв в одну

Убрать сдвоенные границы у table - HTML, CSS
На скрине видно сдвоенные границы. border-collapse пробовал, но толку 0. CSS: td { padding: 3px; padding:5px; ...


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

Или воспользуйтесь поиском по форуму:
Байт
Эксперт C
15831 / 10158 / 1522
Регистрация: 24.12.2010
Сообщений: 19,146
02.12.2013, 22:41     Сдвоенные числа #10
Relike,
Ты можешь мне помочь? Эта программа выдаёт ошибку, на последнем цикле...немогу понять что не так.
..Это не принято в лучших домах - вопросы которые можно (и следует!) обсуждать на форуме, посылать в личку. Это лучший шанс не получить ответа уже ни на что. Это похоже на хватание за рукав на улице "Помогите! Сами мы не местные!" Ты вывесил вопрос? Сиди и жди. Найдутся добрые люди. А врываться к человеку в дом - это как минимум неприлично
Yandex
Объявления
02.12.2013, 22:41     Сдвоенные числа
Ответ Создать тему
Опции темы

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