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

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

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

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

02.12.2013, 20:09. Просмотров 237. Ответов 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++ Проверить, являются ли данные числа С и D соответственно квадратом и кубом числа А
Найти в каждом столбце матрицы G элементы, которые больше числа А и меньше числа С C++
Рандомное заполнение матрицы, причем от числа до числа, введенного с клавиатуры C++
C++ Дано натуральные числа n и m. Определить суму m последних цифр числа n.
C++ Создать функцию которая выводит на экран, числа от 1 до указанного числа
C++ Корни квадратного уравнения, кратность случайного числа, процент от числа
Исключить из строки S все сдвоенные пробелы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jurok_85
238 / 221 / 76
Регистрация: 21.02.2013
Сообщений: 515
Завершенные тесты: 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
 Аватар для kazak
3030 / 2351 / 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 Посмотреть сообщение
Алгоритм простой
Спасибо, но не работает. Вышибает саму консоль....
Байт
Эксперт C
 Аватар для Байт
15045 / 9447 / 1383
Регистрация: 24.12.2010
Сообщений: 17,486
02.12.2013, 21:33     Сдвоенные числа #5
Цитата Сообщение от kazak Посмотреть сообщение
j < sqrt(i)
<= А то 49 будет простым Эти грабли мы уже проходили...
j=0 тоже некоторые сомнения навевает... Как на 0 делить-то будем?

Добавлено через 1 минуту
Цитата Сообщение от Relike Посмотреть сообщение
Вышибает саму консоль....
Что и требовалось доказать.
Я правда, не очень понимаю это выражение "Вышибает САМУ консоль"
kazak
 Аватар для kazak
3030 / 2351 / 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
Да, спасибо. Цикл от двух надо запускать.
Байт
Эксперт C
 Аватар для Байт
15045 / 9447 / 1383
Регистрация: 24.12.2010
Сообщений: 17,486
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     Сдвоенные числа
Еще ссылки по теме:

В строке последовательно записываются числа от 1 до k, потом числа повторяются, пока строка не заполнится C++
Данные числа end являются соответственно квадратом и кубом числа а C++
Пропадают некоторые числа при увеличении числа в бесконечном цикле C++
C++ Либо удваивая одиночные, либо заменяя сдвоенные одним символом, привести строку к заданному виду
C++ Распечатать все простые сдвоенные числа меньшие заданного

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

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

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