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

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

Восстановить пароль Регистрация
 
EvilRaccoon
0 / 0 / 0
Регистрация: 28.11.2015
Сообщений: 31
21.12.2015, 17:05     Функция: для заданного числа А вывести предшествующее ему простое число #1
Для заданного числа А вывести на экран предшествующее по отношению к
нему простое число.

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

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

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