16 / 16 / 12
Регистрация: 10.11.2012
Сообщений: 245
1

Не корректность кода (определение простых чисел)

12.01.2013, 14:30. Показов 717. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Помогите исправить ошибки.
В программе определяющей простые числа
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>
 
using namespace std;
 
 
int  rec(int n)
{
    if(n==0||n==1) return 1;
    
   
}
 
int main()
{
    int a,n,i;
    cout << "Input number:";
    cin >> n;
    
    
    a=n/i;
   for (i=2;i<n;i++)
   {
       if (n%i==0)
       {
                  cout << " 4islo ne prostoe, deliteli:" << i;
       }
   }
   cout <<" prostoe\n" << rec(n);
  
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2013, 14:30
Ответы с готовыми решениями:

Определение простых и составных чисел
Написать программу : является ли данное число простым или составным???

Определение простых чисел в диапазоне
Доброго времени суток. Задача состоит в составлении функции которая бы выводила массив из простых...

Определение простых чисел. Разобрать код
Всем привет. Откуда в этом коде берётся значение х? А если оно равно нулю, то условие же не...

C++, Определение простых чисел, нужен совет
Мне необходимо написать алгоритм определения простых чисел от 1 до 100. Уже три часа переписываю...

15
Обитатель форума
201 / 184 / 54
Регистрация: 28.10.2012
Сообщений: 543
12.01.2013, 14:36 2
Цитата Сообщение от mster-doc Посмотреть сообщение
C++
1
a=n/i;
И чему равно " i " ?
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 14:37 3
Цитата Сообщение от mster-doc Посмотреть сообщение
C++
1
a=n/i;
а зачем вам эта строчка, да и еше ко всему у вас на этой строке не инициализирована i

Добавлено через 1 минуту
Цитата Сообщение от mster-doc Посмотреть сообщение
int *rec(int n)
{
* * if(n==0||n==1) return 1;
}
и какой смысл этой функции она у вас будет работать только в 2 случаях и результат один
0
481 / 9 / 6
Регистрация: 28.12.2011
Сообщений: 151
12.01.2013, 14:39 4
вот тут ты необозначил чему равно i.
C++
1
2
3
4
5
6
int a,n,i;
    cout << "Input number:";
    cin >> n;
    
    
    a=n/i;
Объясню: a=n\i но i это НИЧТО, тк ты несказал компьютеру, что оно обозначает(например число 2)
0
16 / 16 / 12
Регистрация: 10.11.2012
Сообщений: 245
12.01.2013, 14:48  [ТС] 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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n;
    cout << "Input number:";
    cin >> n;
    
    
   for (int i=2;i<n;i++)
   {
       if (n%i==0)
       {
                  cout << " 4islo ne prostoe, deliteli:" << i;
       }
   }
   cout <<" prostoe\n";
  
    system("pause");
    return 0;
}
Добавлено через 1 минуту
только всёровно немного работает криво
если ввести число 6 то программа выводит делители и думает что 2 не простое число
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 14:51 6
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
using namespace std;
 
int main()
{
    int n;
    bool flag = true; 
    cout << "Input number:";
    cin >> n;
    
    
   for (int i=2;i<n;i++)
   {
       if (n%i==0)
       {
                  cout << " 4islo ne prostoe, deliteli:" << i;
                  flag = false;
       }
   }
   if (!flag)
   cout <<" prostoe\n";
  
    system("pause");
    return 0;
}
ну потому что вы водите просто так n добавте условие например такое
0
16 / 16 / 12
Регистрация: 10.11.2012
Сообщений: 245
12.01.2013, 14:57  [ТС] 7
всёровно также(
0
2717 / 1771 / 187
Регистрация: 05.06.2011
Сообщений: 5,129
12.01.2013, 15:19 8
Цитата Сообщение от Nixy Посмотреть сообщение
C++
1
if (!flag)
C++
1
if (flag)
Ну, у тебя это в 19 строке.
0
16 / 16 / 12
Регистрация: 10.11.2012
Сообщений: 245
12.01.2013, 15:21  [ТС] 9
всёровно не помагло
0
36 / 36 / 4
Регистрация: 29.08.2012
Сообщений: 59
12.01.2013, 15:39 10
Цитата Сообщение от mster-doc Посмотреть сообщение
если ввести число 6 то программа выводит делители и думает что 2 не простое число
И правильно, 6 делится на 3 и на 2
А на счёт двойки - цикл начинается с 2, поэтому срабатывает 2%2 == 0, для двойки отдельное условие задайте,
если n == 2 число простое и выход из программы
1
47 / 32 / 9
Регистрация: 05.01.2013
Сообщений: 307
12.01.2013, 15:43 11
Цитата Сообщение от mster-doc Посмотреть сообщение
int a,n,i;
* * cout << "Input number:";
* * cin >> n;
a=n/i;
Задайте значение i
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 15:44 12
лучше цикл с 1 начать просто

Добавлено через 17 секунд
а не отдельное условие 2
0
36 / 36 / 4
Регистрация: 29.08.2012
Сообщений: 59
12.01.2013, 15:50 13
Цитата Сообщение от Nixy Посмотреть сообщение
лучше цикл с 1 начать просто
Добавлено через 17 секунд
а не отдельное условие 2
n % 1 всегда без остатка)))
тогда цикл с 1 и вот так:
C++
1
if (i>1 && n%i==0)
1
2717 / 1771 / 187
Регистрация: 05.06.2011
Сообщений: 5,129
12.01.2013, 15:54 14
Цитата Сообщение от FreeMinder Посмотреть сообщение
цикл начинается с 2, поэтому срабатывает 2%2 == 0
Точно срабатывает? По идее, проверка до тела даже в первый раз -- цикл вообще не срабатывает.
1
36 / 36 / 4
Регистрация: 29.08.2012
Сообщений: 59
12.01.2013, 16:00 15
iifat, вы правы, не подумал приняв на веру слова
Цитата Сообщение от mster-doc Посмотреть сообщение
и думает что 2 не простое число
0
ComfyMobile
401 / 282 / 34
Регистрация: 24.07.2012
Сообщений: 916
12.01.2013, 16:08 16
Цитата Сообщение от FreeMinder Посмотреть сообщение
n % 1 всегда без остатка)))
меня переклинуло что остаток само делимое )
0
12.01.2013, 16:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2013, 16:08
Помогаю со студенческими работами здесь

Сортировка массива по столбцам и определение простых чисел
Условие: Дано две целочисленные матрицы разной размерности, заполненные положительными элементами....

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

Нахождение простых чисел (оптимизация кода)
Здравствуйте! Не могли бы посмотреть программку. Она рабочая. Мне интересен взгляд профессионалов ,...

Рефакторинг кода вывода простых чисел
#include &lt;iostream&gt; #include &lt;ctime&gt; int main() { clock_t t = clock(); { ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru