Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Никуся
0 / 0 / 0
Регистрация: 17.02.2010
Сообщений: 63
#1

проверьте пожалуйста еще один код программы, кто может - C++

09.06.2010, 14:34. Просмотров 848. Ответов 10
Метки нет (Все метки)

проверьте пожалуйста еще один код программы(кто может
вот условие: программа должна проверить число является ли оно простым или нет?
Простое число, целое положительное число, большее, чем единица, не имеющее других делителей, кроме самого себя и единицы: 2, 3, 5, 7, 11, 13...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
using namespace std;
int main()
{
    int n, d, r; //r-отсаток от деления n на d
    cout<<"Введите целое число" ;
    cin>>n;
    d=2; //будем делить на 2
    do 
        { 
           r=n/d;
            if(r!=0) d++;
         }
    while (r!=0); //пока не разделится на d
    if (d==n)
    cout<<"простое число"<<n;
    else
    cout<<"Непростое число"<<n;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2010, 14:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос проверьте пожалуйста еще один код программы, кто может (C++):

Кто-нибудь может закоментировать код слэшами,пожалуйста? - C++
#include &quot;wot.h&quot; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; #include...

Кто может закомментировать код программы С++ ? - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; class het //class { private: float* ms; //massiv...

Написать код для игры НИМ. проверьте пожалуйста тот ли это код - C++
#include &lt;string&gt; using namespace std; int compChoose(int markers); int userChoose(int markers); int...

Проверьте код пожалуйста - C++
Цель работы Создать программу, которая вычисляет значения функции заданного диапазона; необходимо организовать ввод границ интервала,...

Проверьте пожалуйста код - C++
Программа должна проверить введенную строчку на соответствие слову как паролю.Условия Не меньше 8 символов, содержание латинских букв и...

Проверьте пожалуйста код - C++
#include &lt;iostream&gt; #include&lt;stdlib.h&gt; // в этом файле содержатся функции rand() и srand() #include&lt;time.h&gt; ...

10
Airhand
502 / 458 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
09.06.2010, 18:21 #2
Я уже вижу ошибки, не запуская код на компе: в с++ всегда r будет равно 0, т.к. оно целое и будет отброшен дробный "хвост". Если вместо int в пятой строке использовать что-нибудь типа float, то можно зацыклиться и завесить комп.
0
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
09.06.2010, 18:25 #3
C++
1
r=n/d;
Вот это не остаток а целочисленное деление, r=n % d; нужно
0
Никуся
0 / 0 / 0
Регистрация: 17.02.2010
Сообщений: 63
09.06.2010, 18:27  [ТС] #4
в коде нужно исправить только это?или еще что то неверно?
0
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
09.06.2010, 18:33 #5
На глаз, должно работать.
0
Airhand
502 / 458 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
09.06.2010, 18:36 #6
Этот алгоритм, даже с правками Manjak, завесит комп. А что если остаток не будет равен 0 никогда, тогда цикл будет "вечный" и комп повиснет.

Добавлено через 1 минуту
Пример, число 3.
0
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
09.06.2010, 18:37 #7
Каким образом никогда? Даже если число поделить на него же? Оригильно-с

"число 3", а на второй итерации он никак не выйдет? 3 % 3 == 0
0
Airhand
502 / 458 / 3
Регистрация: 08.07.2009
Сообщений: 2,625
09.06.2010, 18:39 #8
Недоглядел: там идёт увеличение делителя.
0
CyBOSSeR
Эксперт С++
2304 / 1674 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
09.06.2010, 18:40 #9
Цитата Сообщение от Никуся Посмотреть сообщение
программа должна проверить число является ли оно простым или нет
Используй функцию:
C++
1
2
3
4
5
6
7
8
9
bool IsSimpleNumber(int n) {
  if (n <= 1)
    return false;
 
  for (int j = 2; j * j <= n; j++)
    if (n % j == 0) return false;
 
  return true;
}
0
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
09.06.2010, 18:43 #10
Я вот было когда-то подумывал как решето Эратосфена оптимизировать, не проверял, но по идеи достаточно проверить деление на 2, 3, 5, 7

Пысы: посидел, подумал, бред - не будет работать если число это произведение двух простых
0
Никуся
0 / 0 / 0
Регистрация: 17.02.2010
Сообщений: 63
09.06.2010, 18:46  [ТС] #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
using namespace std;
int main()
{
int n, d, r; //r-отсаток от деления n на d
cout<<"Введите целое число" ;
cin>>n;
d=2; //будем делить на 2
do
{
r=n%d;
if(r!=0) d++;
}
while (r!=0); //пока не разделится на d
if (d==n)
cout<<"простое число"<<n;
else
cout<<"Непростое число"<<n;
}


вот так правильно?я просто поменяла знак / на %
0
09.06.2010, 18:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2010, 18:46
Привет! Вот еще темы с ответами:

Проверьте пожалуйста код (C++) - C++
Вот я сам написал код(!)) Можете проверить: main() { printf(&quot;Content-type:text/html\n\n&quot;);

Проверьте код пожалуйста - C++
В чем ошибка? Если он в ответе выдает только: Vvedite element massiva: A= #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include...

Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? - C++
Вот кусок текста: Dir = Dir_X + Dir_Y; printf(&quot;X%d,&quot;,dX); printf(&quot;%s &quot;,Xs); ...

Проверьте пожалуйста код на правильность ! - C++
2. Даны два вектора и найти угол между ними и модуль векторного произведения векторов X и Y. При вычислении использовать...


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

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

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