Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
5 / 5 / 1
Регистрация: 24.09.2012
Сообщений: 178

Тест простоты

06.10.2012, 13:09. Показов 3786. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выдаёт ошибку выполнения: деление на 0 в строке 13. Подскажите, что не так?
код
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
long prime_test (const long& x)
{
    std::vector<long> primes (2);
 
    if ((x != 2) && (x % 2 == 0))
        return 2;
 
    for (long i = 3; i <= (long)sqrt ((double)x) + 1; ++i)
    {
        int if_prime = 1;
 
        for (auto iter = primes.cbegin(); (*iter <= (long) sqrt ((double) i) + 1) && (if_prime != 0); ++iter)
            if (i % *iter == 0)
                if_prime = 0;
 
        if (if_prime == 1)
        {
            if (x % i == 0)
                return i;
            else
                primes.push_back (i);
        }
    }
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.10.2012, 13:09
Ответы с готовыми решениями:

Проверка простоты числа
Объясните плиз что значит =! , pc - это функция проверки на простоту числа do { cout &lt;&lt; &quot;Vvedite prostoe P: &quot;;...

Проверка простоты чисел
Ребят,вот прожка...проверка простоты чисел на основе малой теоремы ферма... #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Программа проверки простоты по алгоритму
Алгоритм описан ниже на фото , нужно чтоб пользователь вводил число n и программа проверяла &quot;простое&quot; или &quot;составное...

12
0 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 13
06.10.2012, 14:34
У меня не компилиться, выдает ошибку на 12 строке про
C++
1
primes.cbegin(
Есть другой код на тест простоты чисел, но не знаю устроит ли он вас.


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>
#include <math.h>
using namespace std;
int main()
{
int n;
int i;
int is_prime;
is_prime=true;
cout<<"Enter number";
cin>>n;
i=2;
while(i<=sqrt(static_cast<double>(n)))
{
if (n% i==0)
is_prime=false; i++;
 
if(is_prime)
cout<<"number is prime";
else cout<< "number is not prime";
return 0;
}
}
Если вам имено через векторы нужно, то не знаю.
0
5 / 5 / 1
Регистрация: 24.09.2012
Сообщений: 178
06.10.2012, 15:02  [ТС]
Видимо, у Вас не подключен vector
C++
1
#include <vector>
И мой код по-интереснее будет:
1. он проходит только по простым числам
2. если у меня заменить в конце return 0 на return x, и сделать некоторые косметические изменения, то его можно использовать для факторизации чисел на простые множители.
0
0 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 13
06.10.2012, 15:05
Вектор подключен.
http://fotohost.kz/images/2012/10/06/FsyYw.jpg
скрин
0
5 / 5 / 1
Регистрация: 24.09.2012
Сообщений: 178
06.10.2012, 15:09  [ТС]
Ну тогда не знаю... А Вы чем компилируете?
0
0 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 13
06.10.2012, 15:12
dev c++ 4.9.9.2 скрин ошибки на пост выше
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
06.10.2012, 15:14
vlad_light, надо проверить переменную iter. Она, случаем, не нулю равна?
0
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
06.10.2012, 15:41
Цитата Сообщение от mirax Посмотреть сообщение
У меня не компилиться, выдает ошибку на 12 строке про
Код C++
1
primes.cbegin
cbegin() и auto появились только в 11 стандарте.

Добавлено через 3 минуты
vlad_light, не совсем понял зачем столько всего наворочено, вам просто нужно проверить является ли число простым?
C++
1
2
3
4
5
6
7
bool prime_test(const long& x)
{
    for (long i = 2; i * i <= x; ++i)
        if (x % i == 0)
            return false;
    return true;
}
0
5 / 5 / 1
Регистрация: 24.09.2012
Сообщений: 178
06.10.2012, 16:16  [ТС]
С предыдущей ошибкой разобрался...
softmob, я хочу написать код, который будет проходить не по всем целым числам, а только по простым. Скажем, для одного числа Ваш алгоритм работает быстрее, но вот если нужно будет проверить много чисел, то массив из простых чисел мне поможет. Правда, я только сейчас понял, что написал совсем не то, что нужно: нужно создать отдельный массив, которй я буду "обучать" при вводе чисел.
Сейчас займусь написанием кода, позже выложу.

Не по теме:

Мне это программа нужна не для поиска простых чисел, а для оттачивания навыков c++. Поэтому, неэффекттивность данного алгоритма для меня, в принципе, не имеет значения.

0
0 / 0 / 1
Регистрация: 05.10.2012
Сообщений: 13
06.10.2012, 16:18
Цитата Сообщение от softmob Посмотреть сообщение
cbegin() и auto появились только в 11 стандарте.
Мне это не очем не говорит. Можно пояснений? Такой код компилировать в visual studio 2011 тогда?
0
5 / 5 / 1
Регистрация: 24.09.2012
Сообщений: 178
06.10.2012, 16:27  [ТС]
Не знаю, у меня почему-то тоже не компилируется в wxDev-C++, хотя я думал, что он поддерживает C++11.
C++11 это новый стандарт языка C++, пришёл на смену C++98. В новом стандарте внесли некоторые изменения, которые можно прочесть, например, здесь: http://ru.wikipedia.org/wiki/C%2B%2B11
Скорее всего, wxDev-C++ выпустили до появления стандарта C++11, поэтому функции, которые были внесены в этом стандарте wxDev-C++ не поддерживает. Я использую MS VS C++ 2010.
0
07.10.2012, 19:25

Не по теме:

Цитата Сообщение от vlad_light Посмотреть сообщение
C++11 это новый стандарт языка C++, пришёл на смену C++98
На смену 98 приходил ещё 2003 и пара дополнений. А уж им на смену уже и пришёл с++0х.

0
08.10.2012, 01:05  [ТС]

Не по теме:

Прошу прощения за ложную информацию, просто скопировал из вики

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.10.2012, 01:05
Помогаю со студенческими работами здесь

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

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

Исследовать эффективность двух алгоритмов определения простоты числа
дали задание: Цель: Следует выбрать эффективный алгоритм (по времени) теста простоты числа. На исследование вам дается два алгоритма: ...

Определение простоты числа (функция возвращает неправильный ответ)
Программа получает на вход число x и должна определить, является ли данное число простым. Написана программа, но для числа 155 выдаёт...

Следует выбрать эффективный алгоритм (по времени) теста простоты числа
Следует выбрать эффективный алгоритм (по времени) теста простоты числа. На исследование вам дается два алгоритма: 1. Перебор делителей...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru