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

простые числа в заданном диапазоне - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 4.90
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
14.09.2010, 23:12     простые числа в заданном диапазоне #1
помогите пожалуйста написать программку...я все уже тут посмотрела, никак не могу реализовать её
Найти все простые числа заданном диапазоне(не массив), например вводим а=5, в=30 -в этом диапазоне найти простые числа. Использовать только цикл, может условия какие. больше никаких прибамбасов нельзя, не прошли) на С++
очень прошу, уже битый час мучаюсь...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
14.09.2010, 23:18     простые числа в заданном диапазоне #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
void main()
{
int a=0,b=0;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
for(int i=a;i<=b;i++)
cout<<i<<"\t";
cout<<endl;
 
}
Если я правильно понял условие то как то так
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
14.09.2010, 23:25     простые числа в заданном диапазоне #3
Crudelis, Посмотрите определение простых чисел. На всякий случай.
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
14.09.2010, 23:27  [ТС]     простые числа в заданном диапазоне #4
почему присваем int a=0,b=0; и я так понимаю что мы вводим потом какие то а и в, далее идет цикл и просто выводит нам i? и у меня вышла ошибочка.....
простые числа те которые делятся только на себя...и на единицу, у них нет доп делителей
2,3,5,7,11,13,17
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
14.09.2010, 23:30     простые числа в заданном диапазоне #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
#include<iostream>
 
bool simple(int a)
{
    int cnt=0;
    for(int i=2; i<=a/2; ++i)
        if(a%i==0)
           cnt++;
    if(cnt)
       return false;
    else
       return true;
}
 
int main()
{
int a=0,b=0;
std::cout<<"a=";
std::cin>>a;
std::cout<<"b=";
std::cin>>b;
for(int i=a;i<=b;i++)
    if(simple(i)) 
         std::cout<<i<<'\n';
std::cout<<std::endl;
return 0; 
}
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
14.09.2010, 23:34  [ТС]     простые числа в заданном диапазоне #6
Lavroff, спасибо, ну тут столько не понятных символов, мы даже не знаем что это такое))) можно комменты)
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
14.09.2010, 23:35     простые числа в заданном диапазоне #7
Цитата Сообщение от wild_flower Посмотреть сообщение
почему присваем int a=0,b=0;
инициализация а и б нулем при создании это как бы само защита от того что при создании в них не будет мусора, если вдруг забудете далее в программе ввести их с клавиатуры

Добавлено через 1 минуту
Lavroff, я думаю что функции они ещё не проходили, если задача только на цикл
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
14.09.2010, 23:36  [ТС]     простые числа в заданном диапазоне #8
Crudelis, клево)) он выводит числа все...вообще супер!!! а как теперь из них простые вывести))?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
14.09.2010, 23:39     простые числа в заданном диапазоне #9
Хм.. Ну вот без функций...

Перед функциями cout, cin и пр. можно убрать std, если раскоментировать строчку using namespace std;

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;
 
int main()//main
{
int a=0,b=0;
std::cout<<"a=";//std::cout==cout
std::cin>>a;//std::cin==cin
std::cout<<"b=";
std::cin>>b;
for(int i=a;i<=b;i++)//От а до б включительно
{
    bool cnt=false;//Флажок устанавливаем в false
    for(int j=2; j<=i/2; ++j)//От 2 до i/2
    {
         if(i%j==0)//i делится без остатка на j
            cnt=true;//Ставим флажок в true
    }
    if(cnt==false)//Если флажок false
       std::cout<<i<<'\n';//Печатаем i
}
return 0;//Возвращаем ноль 
}
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
14.09.2010, 23:42     простые числа в заданном диапазоне #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;
void main()
{
int a=0,b=0;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
for(int i=a;i<=b;i++){
 
int cnt=0;
    for(int j=2; j<=i/2; ++i){
        if(i%j==0)
           cnt++;}
      if(!cnt)
         cout<<i<<"\t";
   }
}
cout<<endl;
 
}
Добавлено через 28 секунд

Не по теме:

Опоздал

wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
14.09.2010, 23:49  [ТС]     простые числа в заданном диапазоне #11
Crudelis, спасибо огромное, но че т он мне подчеркивает i выдает ошибку
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
14.09.2010, 23:52     простые числа в заданном диапазоне #12
wild_flower, да что я.... вы лучше спасибо скажите Lavroff вон он какую работу проделал, даже закоментил код)

Добавлено через 1 минуту
wild_flower, какую именно ошибку выдает? скопируйте сюда
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
14.09.2010, 23:52  [ТС]     простые числа в заданном диапазоне #13
Lavroff, спасибо огромное) у вас чем то похожи програмки, но увас выдает ошибку в 18 строке -подчеркивает (cnt)
Crudelis
Шаровик затейник
 Аватар для Crudelis
667 / 409 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
14.09.2010, 23:56     простые числа в заданном диапазоне #14
wild_flower, у меня нормально компилиурется и работает программа что дал Lavroff
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
14.09.2010, 23:58     простые числа в заданном диапазоне #15
Как это? оО. Вы точно в С++ работаете? Булевскую переменную то он с фигали подчеркивает? Ну ладно...

А так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
 
int main()
{
int a=0,b=0;
std::cout<<"a=";
std::cin>>a;
std::cout<<"b=";
std::cin>>b;
for(int i=a;i<=b;i++)
{
    int cnt=0;
    for(int j=2; j<=i/2; ++j)
    {
         if(i%j==0)
            cnt=1;
    }
    if(cnt==0)
       std::cout<<i<<'\n';
}
return 0; 
}
Добавлено через 1 минуту
Сишный стиль объявления переменных... проверьте это...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
 
int main()
{
int a=0,b=0, cnt, i;
std::cout<<"a=";
std::cin>>a;
std::cout<<"b=";
std::cin>>b;
for(i=a;i<=b;i++)
{
    cnt=0;
    for(int j=2; j<=i/2; ++j)
    {
         if(i%j==0)
            cnt=1;
    }
    if(cnt==0)
       std::cout<<i<<'\n';
}
return 0; 
}
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
15.09.2010, 00:02  [ТС]     простые числа в заданном диапазоне #16
Crudelis, вообщем вроде теперь ошибок нет, но он не считает ввожу а, ввожу б и все окно закрылось...а все так красиво сначала было!
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.09.2010, 00:05     простые числа в заданном диапазоне #17
Добавьте std::cin.get(), system("pause") перед return 0.
Что-то одно на выбор
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
15.09.2010, 00:10  [ТС]     простые числа в заданном диапазоне #18
Lavroff, всеее урааа))) спасибо!!!! и откуда такие молодцы берутся!! вот мне бы((
я наверно совсем тупая-а препод придира, что значат строчки с 12-18)
cnt-новая переменная присваеваем 0,
задаем цикл, почему такой?
если остаток от деления равен 0
cnt=1 ....не понимаю что это и далее....
просто хочу еще и сама понимать что написано, а не просто копирнул и все
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
15.09.2010, 00:15     простые числа в заданном диапазоне #19
wild_flower, Окей. Секунду.
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
#include<iostream>
 
int main()
{
int a=0,b=0;
std::cout<<"a=";
std::cin>>a;
std::cout<<"b=";
std::cin>>b;
for(int i=a;i<=b;i++)//Цикл от a до b
{
    if(i==1||i==0||i<0)
       continue;
    int cnt=0;//Заводим новую переменную типа int. Присваиваем начальное значение 0.
    for(int j=2; j<=i/2; ++j)//от 2 до i/2. Начинаем от двух, так как любое число делится на 1, и если число делится на 1, оно остается простым. Следовательно проверять смысла нет. Идем до i/2 потому как больше чем i/2 делителя у числа i быть не может. Для 34 - максимум 17, для 28 - максимум 14 и т.д. Само число всегда делится на само себя, поэтому мы не идем циклом до i а заканчиваем если j=i/2.
    {
         if(i%j==0)//Если остаток от деления i на j = 0
            cnt=1;//cnt=1;
    }
    if(cnt==0)//Если число i не делилось ни на какое число j без остатка, то есть cnt=0
       std::cout<<i<<'\n';//Печатаем i
}
std::cin.get();//Пока не нажмем клавишу программа не завершится (то есть окно консоли не закроется сходу).
return 0; 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2010, 00:17     простые числа в заданном диапазоне
Еще ссылки по теме:

C++ Найти простые числа в диапазоне от 1 до 1000
C++ Найти все числа в заданном диапазоне, которые делятся на любую из своих цифр
Найти числа фибоначчи в заданном диапазоне методом итерации C++

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

Или воспользуйтесь поиском по форуму:
wild_flower
0 / 0 / 0
Регистрация: 14.09.2010
Сообщений: 36
15.09.2010, 00:17  [ТС]     простые числа в заданном диапазоне #20
Lavroff, кстати сейчас проверила, если вводишь единицу он пишет ее как простое число, а она не простое число(исключение)
Yandex
Объявления
15.09.2010, 00:17     простые числа в заданном диапазоне
Ответ Создать тему
Опции темы

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