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

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

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

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

21.12.2015, 17:05. Просмотров 252. Ответов 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++ Для заданного натурального числа N вычислить и вывести на экран
C++ Передать в функцию целое число. Функция заменяет его на ближайшее простое число, которое больше или меньше исходного. Вернуться в main( ) и распечатат
Вывести наибольшее простое число до миллиона C++
C++ Функция, которая для заданного целого числа m находит среди первых m^2-1 чисел Фибоначчи хотя бы одно, делящееся на m (перевести на Си)
Дано простое число. Составить функцию, которая будет находить следующее за ним простое число C++
Разработать функцию, которая для заданного натурального числа N возвращает число его делителей C++
C++ Для заданного числа А вывести на экран предшествующее по отношению к нему простое число
C++ Для заданного натурального числа требуется найти ближайшее к нему двоякое число.
C++ Для каждого числа последовательности вывести новое число, состоящее только из четных чисел исходного числа
C++ Вывести ближайшее к заданному числу N простое число; если таких числа два, то вывести меньшее
C++ Определить ближайшее простое число, большее заданного
Определить ближайшее простое число, меньше заданного C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
_Valera_
 Аватар для _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
Сообщений: 31
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     Функция: для заданного числа А вывести предшествующее ему простое число
Ответ Создать тему
Опции темы

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