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

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

Войти
Регистрация
Восстановить пароль
 
beliall
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 31
#1

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

24.01.2012, 23:33. Просмотров 892. Ответов 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;
}
сделал так ! скажите что не правельно??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2012, 23:33     Найти позиции всех простых чисел!
Посмотрите здесь:

C++ Вывод всех простых чисел.
C++ Среди простых чисел найти найти такое, в двоичной записи которого максимальное число единиц.
Массив целых чисел состоит из n элементов, найти сумму простых чисел, входящих в него C++
C++ Удаление всех простых чисел из массива
C++ Определить количество простых чисел в каждом массиве. Вычислить среднее арифметическое всех элементов массивов
C++ Напишите программу нахождения всех трехзначных простых чисел
C++ Найти сумму всех простых чисел в интервале от 0 до 1000000
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
24.01.2012, 23:45     Найти позиции всех простых чисел! #2
Цитата Сообщение от beliall Посмотреть сообщение
скажите что не правельно??
Вообще каша. Зачем-то проверка на m[i] < 3, после которой цикл даже не запустится.
beliall
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 31
25.01.2012, 00:57  [ТС]     Найти позиции всех простых чисел! #3
согласен 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;
}
x1Mike7x
215 / 128 / 6
Регистрация: 06.11.2010
Сообщений: 234
25.01.2012, 02:05     Найти позиции всех простых чисел! #4
Что такое "позиция простого числа"?
Если это номер простого числа в последовательности простых чисел, то так:
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
beliall
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 31
25.01.2012, 20:52  [ТС]     Найти позиции всех простых чисел! #5
да! нужно что бы выводила порядковый номер простого числа!
Сделал так:
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 минуты
подскажите кто знает как исправить???
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
25.01.2012, 21:26     Найти позиции всех простых чисел! #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
#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. Если что - единичку подотри после "Позиция: ".
beliall
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 31
25.01.2012, 21:41  [ТС]     Найти позиции всех простых чисел! #7
Нужно чтобы числа с клавиатуры вводились!
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) пишет идентификатор не определен!
Если так сделать то
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
25.01.2012, 21:49     Найти позиции всех простых чисел! #8
Пожалуйста... С клавиатуры

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. у меня не то, что ошибок, а предупреждений нету. А сверху опечатался - хотел написать "Ввод сам добавь"
beliall
0 / 0 / 0
Регистрация: 24.01.2012
Сообщений: 31
25.01.2012, 22:03  [ТС]     Найти позиции всех простых чисел! #9
Спасибо! если несложно напишите для чего тут
C++
1
break;
neske
1466 / 833 / 69
Регистрация: 26.03.2010
Сообщений: 2,841
25.01.2012, 22:08     Найти позиции всех простых чисел! #10
достаточно проверить делители на промежутке 2..sqrt(x), так побыстрее будет)
C++
1
for (j = 2; j * j <= _Arr[i]; ++j)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2012, 22:15     Найти позиции всех простых чисел!
Еще ссылки по теме:

Найти произведение всех простых чисел что меньше n C++
Как улучшить следующий код программы? Поиск всех простых чисел до 1000 C++
C++ Поиск всех простых чисел в заданном диапазоне
C++ Вывод всех простых чисел в диапазоне от 1 до 100
C++ Найти количество всех простых чисел на отрезке

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

Или воспользуйтесь поиском по форуму:
Pavel.fromBy
13 / 13 / 1
Регистрация: 31.12.2011
Сообщений: 83
25.01.2012, 22:15     Найти позиции всех простых чисел! #11
beliall, если оно разделилось нацело - это уже не простое, дальше смысла нету гнать
Yandex
Объявления
25.01.2012, 22:15     Найти позиции всех простых чисел!
Ответ Создать тему
Опции темы

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