Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 31

Найти позиции всех простых чисел!

24.01.2012, 23:33. Показов 2179. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С клавиатуры вводится 20 простых чисел, найти позиции всех простых чисел!
C++
1
2
3
4
5
6
7
8
9
10
11
12
# include<iostream>
using namespace std;
int main()
{
int m[20],m1[20],vivod=0;
for(int i=0;i<20;i++){ cin >> m[i];
if (m[i]<3)
    for(int k=2; k<=m[i]/2;i++)
        if(m[i]%k==0) m1[vivod]=i;vivod++;}
for (int g=0;g<vivod;g++) cout <<m1[g];
    return 0;
}
сделал так ! скажите что не правельно??
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2012, 23:33
Ответы с готовыми решениями:

Найти количество всех простых чисел на отрезке
Решите пожалуйста, завтра необходимо сдать. Задание: Разработка нерекурсивных функции. Разработать функцию, которая для заданного...

Найти сумму всех простых чисел в интервале от 0 до 1000000
Есть программка считающая сумму всех простых чисел от 0 до 1 млн. Но результат выдает не правильно. Если вместо млн уменьшаешь диапазон до...

Найти произведение всех простых чисел что меньше n
Помогите, пожалуйста, с программой

10
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
24.01.2012, 23:45
Цитата Сообщение от beliall Посмотреть сообщение
скажите что не правельно??
Вообще каша. Зачем-то проверка на m[i] < 3, после которой цикл даже не запустится.
0
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 31
25.01.2012, 00:57  [ТС]
согласен m[i] < 3 не к чему сам не понял зачем написал! Но все таки как будет правильно!?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# include<iostream>
using namespace std;
int main()
{
int m[20],m1[20],vivod=0;
for(int i=0;i<20;i++){
    cin >> m[i];
    for(int k=2; k<=m[i]/2;i++)
        if(m[i]%k==0) 
                   m1[vivod]=i;
                    vivod++;}
for (int g=0;g<vivod;g++) 
    cout <<m1[g];
    return 0;
}
0
 Аватар для x1Mike7x
222 / 135 / 19
Регистрация: 06.11.2010
Сообщений: 234
25.01.2012, 02:05
Что такое "позиция простого числа"?
Если это номер простого числа в последовательности простых чисел, то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int x;
for ( int i = 0; i < 20; ++i )
{
    std::cin >> x;
    int pos = 1, count = 1;
    for ( int a = 3; a <= x; a += 2 )
    {
        int prime = 1;
        for ( int z = 2; z * z <= a && prime; ++z )
            prime &= ( a % z != 0 );
        count += prime;
    }
    std::cout << count << std::endl;
}
http://ideone.com/3lI45
1
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 31
25.01.2012, 20:52  [ТС]
да! нужно что бы выводила порядковый номер простого числа!
Сделал так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
# include<iostream>
using namespace std;
int main()
{
int vivod=0,m[10];
for(int i=0;i<10;i++){
    cin >> m[i];}
    for(int k=0; k<10;k++){
        for(int a=2; a<=m[k]/2;a++)
            if(m[k]%a==0) cout<<k;}
 
    return 0;
}
Номер вроде выводит но криво ! несколько раз его повторяет!

Добавлено через 53 минуты
подскажите кто знает как исправить???
0
 Аватар для Pavel.fromBy
13 / 13 / 0
Регистрация: 31.12.2011
Сообщений: 83
25.01.2012, 21:26
Особо не проверял, но вот мой вариант:

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()
{
    setlocale(LC_ALL, "rus");
 
    int _Arr[10] = { 111, 123, 145, 141, 254, 112, 968, 881, 778, 991 };
 
    for (int i = 0, j; i < 10; i++)
    {
        for (j = 2; j < (_Arr[i] / 2); j++)
            if (_Arr[i] % j == 0)
                break;
 
        if (_Arr[i] % j != 0)
            cout << "Число: " << _Arr[i] 
                               << "\nПозиция: " << i+1 << endl << endl;
    }
 
    return 0;
}
p.s. Вывод сам добавь... Позицию выводит не с 0, а с 1. Если что - единичку подотри после "Позиция: ".
1
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 31
25.01.2012, 21:41  [ТС]
Нужно чтобы числа с клавиатуры вводились!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# include<iostream>
using namespace std;
int main()
{
int vivod=0,m[10];
for(int i=0;i<10;i++){
    cin >> m[i];}
    for(int k=0; k<10;k++){
        for(int a=2; a<(m[k]/2);a++)
            if(m[k]%a==0) 
                break;
    if(m[k]%a!=0)
    cout <<k++ ;}
 
    return 0;
}
Если так сделать то в месте if(m[k]%a!=0) пишет идентификатор не определен!
Если так сделать то
0
 Аватар для Pavel.fromBy
13 / 13 / 0
Регистрация: 31.12.2011
Сообщений: 83
25.01.2012, 21:49
Пожалуйста... С клавиатуры

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>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
 
    int _Arr[10];
 
    cout << "Вводи числа..." << endl;
    for (int i = 0; i < 10; i++)
         cin >> _Arr[i];
 
    for (int i = 0, j; i < 10; i++)
    {
            for (j = 2; j < (_Arr[i] / 2); j++)
                    if (_Arr[i] % j == 0)
                            break;
 
            if (_Arr[i] % j != 0)
                    cout << "\nЧисло: " << _Arr[i] 
                            << "\nПозиция: " << i+1 << endl;
    }
 
    return 0;
}
p.s. у меня не то, что ошибок, а предупреждений нету. А сверху опечатался - хотел написать "Ввод сам добавь"
2
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 31
25.01.2012, 22:03  [ТС]
Спасибо! если несложно напишите для чего тут
C++
1
break;
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
25.01.2012, 22:08
достаточно проверить делители на промежутке 2..sqrt(x), так побыстрее будет)
C++
1
for (j = 2; j * j <= _Arr[i]; ++j)
0
 Аватар для Pavel.fromBy
13 / 13 / 0
Регистрация: 31.12.2011
Сообщений: 83
25.01.2012, 22:15
beliall, если оно разделилось нацело - это уже не простое, дальше смысла нету гнать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2012, 22:15
Помогаю со студенческими работами здесь

Массив: Найти сумму всех простых чисел в одномерном массиве размерности n.
Найти сумму всех простых чисел в одномерном массиве размерности n . И если может кто сделать блок схему , спасибо)

Из всех пар простых чисел, сумма которых равна заданному числу, найти пару, содержащую наименьшее простое число
Известно, что любое чётное число, большее 2, представимо в виде суммы 2 простых чисел, причём таких разложений может быть несколько. ...

Вывод всех простых чисел.
Задали задачку. Вывести все простые числа от 1 до n Примерно сделал на паскале. До 100 все работает а дальше он не может ворочать...

Печать всех простых чисел до 500
Печать всех простых чисел до 500 Помогите, плз))

Удаление всех простых чисел из массива
Помогите, пожалуйста, решить задачу в с++. Как удалить все простые числа из массива? Начало программы есть: ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru