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

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

Восстановить пароль Регистрация
 
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
02.12.2013, 20:09     Сдвоенные числа #1
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     Сдвоенные числа
Посмотрите здесь:

Даны два целых числа A и B (A < B). Вывести в порядке убывания все це-лые числа, расположенные между A и B (не включая числа A и B), а также количеств C++
Дан файл F, компонентами которого являются целые числа. Получить в файле G все нечетные числа, входящие в файл F. Числа в файле G должны следовать C++
C++ Как написать программу-калькулятор чтобы было можно додавать 2 числа, 3 числа, 4 числа, n чисел?
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми C++
C++ Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
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
 Аватар для kazak
3029 / 2350 / 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
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
02.12.2013, 21:31  [ТС]     Сдвоенные числа #4
Цитата Сообщение от kazak Посмотреть сообщение
Алгоритм простой
Спасибо, но не работает. Вышибает саму консоль....
Байт
 Аватар для Байт
13945 / 8776 / 1221
Регистрация: 24.12.2010
Сообщений: 15,883
02.12.2013, 21:33     Сдвоенные числа #5
Цитата Сообщение от kazak Посмотреть сообщение
j < sqrt(i)
<= А то 49 будет простым Эти грабли мы уже проходили...
j=0 тоже некоторые сомнения навевает... Как на 0 делить-то будем?

Добавлено через 1 минуту
Цитата Сообщение от Relike Посмотреть сообщение
Вышибает саму консоль....
Что и требовалось доказать.
Я правда, не очень понимаю это выражение "Вышибает САМУ консоль"
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.12.2013, 21:34     Сдвоенные числа #6
Про ноль забыл совсем)
Цитата Сообщение от Байт Посмотреть сообщение
<= А то 49
у ТС
Цитата Сообщение от kazak Посмотреть сообщение
j < sqrt(i) + 1
Relike
 Аватар для Relike
6 / 6 / 0
Регистрация: 24.04.2013
Сообщений: 260
02.12.2013, 21:34  [ТС]     Сдвоенные числа #7
Да, спасибо. Цикл от двух надо запускать.
Байт
 Аватар для Байт
13945 / 8776 / 1221
Регистрация: 24.12.2010
Сообщений: 15,883
02.12.2013, 21:36     Сдвоенные числа #8
Цитата Сообщение от Relike Посмотреть сообщение
Сдвоенные числа
В классической литературе называется простые числа близнецы
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++
Исключить из строки S все сдвоенные пробелы C++
Ввести в программу строку (числа, латиница), считать только числа, записать числа в массив C++

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

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

Текущее время: 20:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru