Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 19.06.2014
Сообщений: 11
1

Вывести все простые числа, в которых нет двух подряд идущих одинаковых цифр

19.06.2014, 13:25. Просмотров 1887. Ответов 15
Метки нет (Все метки)

В файле есть числа, вывести на экран все простые числа, в которых нет двух подряд идущих одинаковых цифр.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2014, 13:25
Ответы с готовыми решениями:

Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр
Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр. Например...

Вывести все четырехзначные числа, в десятичной записи которых нет двух одинаковых цифр.
Вот, собственно и условие: Вывести все четырехзначные числа, в десятичной записи которых нет двух...

Вывести на экран все четырехзначные натуральные числа, в записи которых нет двух одинаковых цифр
Получить все четырехзначные натуральные числа, в записи которых нет двух одинаковых цифр ...

Получить все простые трехзначные натуральные числа, в записи которых нет одинаковых цифр
Решить нужно с помощью процедур и функций. получить все простые трехзначные натуральные числа, в...

15
271 / 265 / 146
Регистрация: 02.08.2012
Сообщений: 609
19.06.2014, 14:45 2
Лучший ответ Сообщение было отмечено evreyizada как решение

Решение

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
#include <iostream>
#include <cmath>
#include <sstream>
#include <fstream>
#include <conio.h>
 
bool neededPrime(int num)
{
    std::string str;   
    std::ostringstream convert;   
    convert << num;
    str = convert.str();
    for(int i = 0; i < str.size() - 1; i++)
        if(str[i] == str[i + 1]) return false;
    return true;
}
 
bool isPrime(int num)
{
    if(num <= 1) return false;
    for(int i = 2; i < sqrt(num); i++)
            if(!(num % i)) return false;
    if(neededPrime(num)) return true;
}
 
int main()
{
    std::ifstream file("file.txt");
    if(file)
    {
        int num;
        while(file >> num)
        {
            if(isPrime(num)) 
                std::cout << num << std::endl;
        }
        file.close();
    }
    else
        perror("Error");
    
    std::cout << "\nOperation succeeded\n";
    getch();
    return 0;
}
1
0 / 0 / 0
Регистрация: 19.06.2014
Сообщений: 11
19.06.2014, 21:47  [ТС] 3
А можно если не сложно, подписать что и где, и какую роль выполняет.
Общая картина ясна, но что бы не перепутать на будущее.
Спасибо!
0
271 / 265 / 146
Регистрация: 02.08.2012
Сообщений: 609
19.06.2014, 22:32 4
evreyizada
Кликните здесь для просмотра всего текста
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
bool neededPrime(int num) // Функция поиска нужных простых чисел
{
    // Конвертируем число в string, для поиска соседей
    std::string str;   
    std::ostringstream convert; // Используем поток ostringstream,
    convert << num;             // в который записываем число
    str = convert.str();        // и конвертируем в string
    for(int i = 0; i < str.size() - 1; i++)
        if(str[i] == str[i + 1]) return false; // Если соседи равны return false
    return true; // Иначе return true
}
 
bool isPrime(int num) // Функция поиска простых чисел
{
    if(num <= 1) return false; // Если число меньше двух, то оно непростое
    for(int i = 2; i < sqrt(num); i++)   // Если хоть одно число кратно числу,
            if(!(num % i)) return false; // в интервале от 2 до корня данного числа,
                                         // то число непростое
    // Если neededPrime(num) возвращает true, возвращаем true
    if(neededPrime(num)) return true;
}
 
int main()
{
    std::ifstream file("file.txt"); // Поток считывания
    if(file) // Если файл существует
    {
        int num;
        while(file >> num) // Считываем поэлементно из file
        {
            if(isPrime(num)) // Если isPrime(num) возвращает true, печатаем число
                std::cout << num << std::endl;
        }
        file.close(); // Закрываем файл
    }
    else
        perror("Error"); // Ошибка при открытии файла
    
    std::cout << "\nOperation succeeded\n";
    getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 19.06.2014
Сообщений: 11
19.06.2014, 22:34  [ТС] 5
Всё успешно компилирует, но нет вывода самих чисел на экран
либо у меня что-то не верно выполняется, либо я косячу
0
271 / 265 / 146
Регистрация: 02.08.2012
Сообщений: 609
19.06.2014, 22:36 6
evreyizada, а в file.txt есть числа?
0
0 / 0 / 0
Регистрация: 19.06.2014
Сообщений: 11
19.06.2014, 22:37  [ТС] 7
да, конечно.
создал файл, внес числа
0
271 / 265 / 146
Регистрация: 02.08.2012
Сообщений: 609
19.06.2014, 22:39 8
evreyizada, странно, у меня выводит.
Поделитесь содержимым файла
0
0 / 0 / 0
Регистрация: 19.06.2014
Сообщений: 11
19.06.2014, 22:48  [ТС] 9
Ну, обычный набор чисел. http://vk.com/doc5805834_30989... 1ce74cee8c
"113 345 567 554 789 665 183 175 896 554 905 974 896 778 883" Думаю тут накосячить я не мог.
Только выдает: "Operation succeeded".
0
271 / 265 / 146
Регистрация: 02.08.2012
Сообщений: 609
19.06.2014, 22:53 10
evreyizada, ну здесь же нет ни одного числа, которое подходит по условию,
поэтому ничего и не выводит. Попробуйте следующие числа
Код
2 5 3 46 23 685 30 123 45 4863
13 241 654 32 74 856 2 564 32 0 5 48 4523
113 11117
0
0 / 0 / 0
Регистрация: 19.06.2014
Сообщений: 11
19.06.2014, 22:58  [ТС] 11

Но так-же тут присутствуют числа с двумя одинаковыми цифрами подряд.
При выводе чисел на экран.
0
271 / 265 / 146
Регистрация: 02.08.2012
Сообщений: 609
19.06.2014, 23:07 12
evreyizada, где это вы компилируете, что за IDE.
У меня всё выводит правильно, в функциях ничего не меняли?
0
0 / 0 / 0
Регистрация: 19.06.2014
Сообщений: 11
19.06.2014, 23:12  [ТС] 13
через онлайн компилятор http://www.onlinecompiler.net/ccplusplus
обычно работаю через visual studio, но под рукой его не оказалось
0
271 / 265 / 146
Регистрация: 02.08.2012
Сообщений: 609
19.06.2014, 23:27 14
evreyizada, что-то я не доверяю этому компилятору.
http://www.compileonline.com/c... online.php
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cmath>
#include <string>
#include <sstream>
#include <fstream>
 
bool neededPrime(int num)
{
    std::string str;   
    std::ostringstream convert; 
    convert << num;             
    str = convert.str();        
    for(int i = 0; i < str.size() - 1; i++)
        if(str[i] == str[i + 1]) return false;
    return true;
}
 
bool isPrime(int num)
{
    if(num <= 1) return false;
    for(int i = 2; i < sqrt(num); i++)
            if(!(num % i)) return false; 
    if(neededPrime(num)) return true;
}
 
int main()
{
    std::ifstream file("input.txt");
    if(file)
    {
        int num;
        while(file >> num)
        {
            if(isPrime(num))
                std::cout << num << std::endl;
        }
        file.close();
    }
    else
        perror("Error");
    
    return 0;
}
0
0 / 0 / 0
Регистрация: 19.06.2014
Сообщений: 11
19.06.2014, 23:41  [ТС] 15
Более менее разобрался.
Если не сложно, можно на последок объяснить поподробнее принцип работы данного элемента:
std::string str;
std::ostringstream convert;
convert << num;
str = convert.str();
0
271 / 265 / 146
Регистрация: 02.08.2012
Сообщений: 609
20.06.2014, 00:09 16
C++
1
2
3
4
std::string str;            // Создаём переменную string (string - грубо говоря, массив из char)
std::ostringstream convert; // Создаём поток для преобразования
convert << num;             // Вставляем текстовое представление числа в поток
str = convert.str();        // В значение str устанавливаем содержимое потока
Добавлено через 11 минут
evreyizada, в общем, это преобразование int в string
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2014, 00:09

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

Получить все четырехзначные натуральные числа, в записи которых нет двух одинаковых цифр
вот задание. Получить все четырехзначные натуральные числа, в записи которых нет двух одинаковых...

Получить все четырехзначные натуральные числа, в записи которых нет двух одинаковых цифр
Получить все четырехзначные натуральные числа, в записи которых нет двух одинаковых цифр.

Получить все четырехзначные натуральные числа, в записи которых нет двух одинаковых цифр
Получить все четырехзначные натуральные числа, в записи которых нет двух одинаковых цифр.

Получить все четырехзначные натуральные числа, в записи которых нет двух одинаковых цифр
Получить все четырехзначные натуральные числа, в записи которых нет двух одинаковых цифр. Вывести...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

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