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

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

Войти
Регистрация
Восстановить пароль
 
EvilRaccoon
0 / 0 / 0
Регистрация: 28.11.2015
Сообщений: 35
#1

Функция: для заданного числа А вывести предшествующее ему простое число - C++

21.12.2015, 17:05. Просмотров 304. Ответов 4
Метки нет (Все метки)

Для заданного числа А вывести на экран предшествующее по отношению к
нему простое число.

Столкнулся с проблемкой, при вводе 1, печает 0, как это исправить?
В самом цикле do while поменять что-то?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
int f(int n)
{
    setlocale(LC_ALL,"Russian");
int flag, i;  
    for (i = 2, flag = 0; i<n; i++)
    if (!(n%i))
        flag = 1;
    if (!flag) return 0;
    else return 1;
}
int main()
{ int n;
cout << "Enter number:";
cin >>n;
do n--;
while (f(n) == 1);
cout<<"Prostoe chislo:" <<n<<endl;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2015, 17:05     Функция: для заданного числа А вывести предшествующее ему простое число
Посмотрите здесь:
C++ Для заданного числа А вывести на экран предшествующее по отношению к нему простое число
C++ Вывести ближайшее к заданному числу N простое число; если таких числа два, то вывести меньшее
C++ Дано натуральное число. Вывести на экран все простые числа до заданного числа.
Определить ближайшее простое число, меньше заданного C++
C++ Определить ближайшее простое число, большее заданного
C++ Для заданного натурального числа N вывести в столбик все совершенные числа меньшие N c++
C++ Передать в функцию целое число. Функция заменяет его на ближайшее простое число, которое больше или меньше исходного. Вернуться в main( ) и распечатат
C++ Дано простое число. Составить функцию, которая будет находить следующее за ним простое число.
C++ Дано простое число. Составить функцию, которая будет находить следующее за ним простое число
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число C++
Дано простое число. Составить функцию,которая будет находить следующее за ним простое число. C++
Функция проверки числа на простое значение C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Valera_
486 / 368 / 94
Регистрация: 27.01.2015
Сообщений: 1,588
21.12.2015, 17:09     Функция: для заданного числа А вывести предшествующее ему простое число #2
Цитата Сообщение от EvilRaccoon Посмотреть сообщение
while (f(n) == 1);
не знаю что тут происходит, но могу предложить:
C++
1
while (f(n) != 1);
Корпусов
5 / 5 / 2
Регистрация: 19.03.2014
Сообщений: 15
21.12.2015, 17:28     Функция: для заданного числа А вывести предшествующее ему простое число #3
А где у вас в коде функция для нахождения предшествующего простого числа?
EvilRaccoon
0 / 0 / 0
Регистрация: 28.11.2015
Сообщений: 35
21.12.2015, 17:44  [ТС]     Функция: для заданного числа А вывести предшествующее ему простое число #4
Я прогоняю числа с помощью этого:
C++
1
2
do n--;
while (f(n) == 1);
И оно идет в функцию.
Корпусов
5 / 5 / 2
Регистрация: 19.03.2014
Сообщений: 15
21.12.2015, 18:09     Функция: для заданного числа А вывести предшествующее ему простое число #5
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
#include <iostream>
using namespace std;
 
bool f(int n)
{
    if (n < 3) {
        return 0;
    }
    for (int i = 2; i < n; i++) {
        if (n % i == 0) {
            return false;
        }   
    }
    return true;
}
 
int main()
{
    setlocale(LC_ALL,"Russian");
    int n;
    cout << "Введите число:";
    cin >> n;
    do {
        n--;
    } while (f(n) && n > 1);
    if (n > 1) {
        cout << "Простое число:" << n << endl;
    } else {
        cout << "Невозможно найти меньшее простое число" << endl;
    }
    system("pause");
    return 0;
}
Yandex
Объявления
21.12.2015, 18:09     Функция: для заданного числа А вывести предшествующее ему простое число
Ответ Создать тему
Опции темы

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