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

Простые числа, или как это работает? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Конструкторы и указатели на объект класса http://www.cyberforum.ru/cpp-beginners/thread814877.html
Добрый вечер. Помогите, пожалуйста, прояснить 2 вещи: 1) В чём будет отличие между конструкторами: int a; //Исп. оператор присваивания MyClass(int val) { a = val; }
C++ Конструктор в производном классе Всем доброго времени суток! есть класс Строка (CStr) class CStr { protected: int length; char *str; public: CStr(); CStr(const char *s); http://www.cyberforum.ru/cpp-beginners/thread814860.html
Программа нахождения совершенных чисел C++
Нужно написать программу которая выводит совершенные числа (http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%B2%D0%B5%D1%80%D1%88%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%BE, меньшее 1000. Так же кроме самих совершенных чисел необходимо написать сумму их сомножителей. Программу я написал, но почему то числа у меня вывелись больше 1000 и не все числа, которые выводятся на экран,...
функция в функции y = e^x cos x C++
как можно написать функцию в функции к примеру y = ex cos x ?
C++ Наследование http://www.cyberforum.ru/cpp-beginners/thread814852.html
Не могу понять в чем ошибка. #include <iostream> #include <string> using namespace std; class Auto { protected: string model; int speed;
C++ Объясните почему не срабатывает И (&&) Есть задача нахождения наибольшего общего делителя для двух чисел. Программу я написал.Но почему когда я указывал в цикле И (&&), цикл выполнялся неправильно, а когда указал ИЛИ (||), все заработало. Объясните почему нужно ставить ИЛИ, когда по логике вроде подходит И. Заранее извиняюсь, если мой вопрос глуп #include<iostream> using namespace std; int nod (int, int); int main() {... подробнее

Показать сообщение отдельно
TecktoTrance
0 / 0 / 0
Регистрация: 18.02.2013
Сообщений: 13
21.03.2013, 19:02     Простые числа, или как это работает?
Доброго времени суток всем участникам этого форума =) У меня как у начинающего программиста возникла затрудняющая ситуация, есть готовый код программы, но как он действует не до конца понимаю
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
#include <iostream>
using namespace std;
void main(){
 
int digit=0;
for(int i=2;i<=1000;i++){
    for(int j=1;j<=i;j++){
        if(i==2){
            continue;
        }
        if(i%j==0){
            digit++;
        }
    
        if(j==i/2&&digit==1){
            cout<<i<<endl;
            digit=0;
        }
        if(digit>1){
            digit=0;
    break;}
        }
}
}
Эта программа выводит все простые числа от 3 до 997(по условию нужно вывести все простые числа от 2 до 1000, но 1 и 2 не считаются как простые числа), читая код этой программы у меня возник некий вопрос:
была создана переменная digit и присвоено значение 0, она сыграла роль счетчика, ну а конкретно как этот счетчик сработал мне не ясно =/
В логических операторах if были созданы условия: вычеркивать из списка все четные числа(так как они не есть простые числа) и выводить числа которые делятся на единицу и на само себя, и тут влезает мне в голову эта самая переменная digit, которая играет роль в этом коде, то увеличивает свое значение то снова ей присваивается 0.
Люди добрые кто как может, яснее просветите меня как же работает этот код ( пробовал пробежаться отладчиком и посмотреть как же все таки он срабатывает, и тут меня обрек жестокий Fail, меня повело черт знает куда)
Заранее спасибо за участие в теме =)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru