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

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

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

Программа нахождения простых чисел - C++

24.07.2016, 14:20. Просмотров 1412. Ответов 25
Метки нет (Все метки)

Я написал программу но в ней ошибка! Не пойму какая! Но мне важно понять как исправить именно эту прогу, знаю что есть другие проги на эту тему.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
#include <iomanip>
using namespace std;
void main()
{
    int f=0;
    int n=10;
    for (int j=1; j < 10; j++)
    {
        for(int i=1; i<=j/i; i++) 
            if( n%j == 0 ) 
            {
                f=1; break;             
            }
        if(f == 1)  cout<<j<<setw(3);
        f=0;
    }
    cout<<endl;
    system("pause");
}
Программа нахождения простых чисел!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2016, 14:20     Программа нахождения простых чисел
Посмотрите здесь:

Нахождения больших простых чисел - C++
Нахождения больших простых чисел. Реализовать программу на C++. спасибо за помощь

Алгоритм нахождения простых чисел - C++
Не так давно начал изучать с++. Вот попытался написать программу которая вычисляет простое ли число которые вы ввели в консоль? но она...

Алгоритм нахождения простых чисел - C++
Вопросы: 1) Нужен алгоритм проверки числа (является ли число простим). Нужно чтобы алгоритм был быстрым (нужно проделать 104 операций за...

Алгоритм нахождения простых чисел - C++
Не могу найти в интернете нормальный код алгоритма нахождения простых чисел. Помогите пожалуйста. Добавлено через 2 минуты ...

Алгоритм нахождения ПРОСТЫХ чисел в файле - C++
Заполнить файл f целыми числами, полученными с помощью генератора случайных чисел. Из файла f получить файл g, оставив только ПРОСТЫЕ...

Написать программу нахождения первых 50 простых чисел - C++
Написать программу нахождения первых 50 простых чисел...Помогите пожалустно если можно то с коментариями!!

Напишите программу нахождения всех трехзначных простых чисел - C++
Найти все трехзначные простые числа

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SerVal
23 / 23 / 2
Регистрация: 16.04.2015
Сообщений: 208
24.07.2016, 15:45     Программа нахождения простых чисел #16
Цитата Сообщение от shilko2013 Посмотреть сообщение
Вообще-то есть решето Эратосфена
У него только один недостаток - оно не распараллеливается.
То есть, от 4-х ядер процессора - никакого толку. Правда, Эратосфен в этом не виноват.
Unknownx
Заблокирован
24.07.2016, 15:50     Программа нахождения простых чисел #17
Цитата Сообщение от SerVal Посмотреть сообщение
Алгоритм - это когда всё понятно. А у Вас - непонятно!
- а ну тогда раз дело в этом, то что есть простое число - это число которое делится только на себя, т.е на 1-цу и на самого себя

Возьмём к примеру числа 7-мь и 8-мь и пройдёмся по всем возможным делителям

Цитата Сообщение от Maxim09 Посмотреть сообщение
if *(j%i == 0 )
- если кто забыл это остаток от целочисленного деления т.е пока число делится с остатком мы идём дальше, как только поделилось нацело то стопорим алгоритм
итак 7-ка
7 % 2 остаток 1
7 % 3 есть остаток 1
7 % 4 есть остаток 3
7 % 5 есть остаток 2
7 % 6 есть остаток 1
итак весь цикл чисел от 2-ки до 7-ки не дал ни одного целого делителя, значит у числа просто нет дургих делителей кроме как 1 и само число

Теперь 8-ка
8 % 2 == 0 ага остаток 0 - останавливаем цикл и не печатаем число(под условием if( f == 0 ) можно записать добавление в вектор и всё что угодно, я просто ограничился печатанием простых чисел)

Добавлено через 3 минуты
Касательно 1-цы и двойки, с ними цикл по i просто не начинается, надеюсь теперь всё понятно
Serg_o_Grey
66 / 66 / 24
Регистрация: 29.03.2016
Сообщений: 335
24.07.2016, 15:52     Программа нахождения простых чисел #18
Цитата Сообщение от shilko2013 Посмотреть сообщение
Вообще-то есть решето Эратосфена
задача была поставлена именно данный автором код подправить

Добавлено через 1 минуту

Не по теме:


Цитата Сообщение от Unknownx Посмотреть сообщение
Цитата Сообщение от SerVal Посмотреть сообщение
Алгоритм - это когда всё понятно. А у Вас - непонятно!
Unknownx, с товарищем SerVal, в другой теме встречался, он не очень-то сильно понимает...

SerVal
23 / 23 / 2
Регистрация: 16.04.2015
Сообщений: 208
24.07.2016, 15:56     Программа нахождения простых чисел #19
Во-первых, непонятно, какое отношение к алгоритму имеет функция main?

Цитата Сообщение от Unknownx Посмотреть сообщение
Теперь 8-ка
8 % 2 == 0 ага остаток 0
На двойку-то зачем делить??? В самом начале надо
C++
1
if ((candidate & 1) == 0) return false; // число чётное
Serg_o_Grey
66 / 66 / 24
Регистрация: 29.03.2016
Сообщений: 335
24.07.2016, 16:01     Программа нахождения простых чисел #20
Цитата Сообщение от SerVal Посмотреть сообщение
Зачем делить-то???
C++
Выделить код
1
if ((candidate & 1) == 0) return false; // число чётное
if ((15 & 1) == 0) return false; // число нечетное
и что?
Unknownx
Заблокирован
24.07.2016, 16:10     Программа нахождения простых чисел #21
Цитата Сообщение от SerVal Посмотреть сообщение
На двойку-то зачем делить??? В самом начале надо
C++пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ
1
if ((candidate & 1) == 0) return false; // число чётное
как зачем, мы идём по делителям числа от 2-х и до число - 1
SerVal
23 / 23 / 2
Регистрация: 16.04.2015
Сообщений: 208
24.07.2016, 16:18     Программа нахождения простых чисел #22
Ошибся маленько.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main(int argc, char *argv[])
{
    setlocale(LC_CTYPE, "russian");
 
    int a = 15;
    if ((a & 1) != 1)
    {
        std::cout << a << " число чётное." << endl;
        return false;
    }
    else
    {
        std::cout << a << " не чётное. Возможно простое." << endl;
    }
}
C++
1
2
D:\>TestBigInt.exe
15 - не чётное. Возможно простое.
На двойку всё равно незачем делить.
Serg_o_Grey
66 / 66 / 24
Регистрация: 29.03.2016
Сообщений: 335
24.07.2016, 16:21     Программа нахождения простых чисел #23
Цитата Сообщение от Unknownx Посмотреть сообщение
как зачем, мы идём по делителям числа от 2-х и до число - 1
Цитата Сообщение от SerVal Посмотреть сообщение
На двойку всё равно незачем делить.
все же незачем, и мой пример выигрывает
SerVal
23 / 23 / 2
Регистрация: 16.04.2015
Сообщений: 208
24.07.2016, 16:30     Программа нахождения простых чисел #24
Цитата Сообщение от Serg_o_Grey Посмотреть сообщение
и мой пример выигрывает
Выигравает тот, кто распараллелит алгоритм. Вот тут

http://primesieve.org/
About:
primesieve is a free software program and C/C++ library that generates primes using a highly optimized sieve of Eratosthenes implementation. It counts the primes below 10^10 in just 0.45 seconds on an Intel Core i7-6700 CPU (4 x 3.4GHz). primesieve can generate primes and prime k-tuplets up to 2^64.
*****
Можно скачать. Шустрая - жуть! (умещается в кэше процессора).
Serg_o_Grey
66 / 66 / 24
Регистрация: 29.03.2016
Сообщений: 335
24.07.2016, 16:39     Программа нахождения простых чисел #25
Цитата Сообщение от SerVal Посмотреть сообщение
Выигравает тот, кто распараллелит алгоритм.
проблем это не составит (главный поток распределяет задачи между дочерними), но задача данной темы состояла в другом...
и тут я выиграл

Добавлено через 4 минуты
Цитата Сообщение от SerVal Посмотреть сообщение
Можно скачать. Шустрая - жуть! (умещается в кэше процессора).
шустрая не программа а проц
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.07.2016, 16:49     Программа нахождения простых чисел
Еще ссылки по теме:

Программа поиска простых чисел - C++
Необходимо написать программу для поиска простых чесил в интервале от 1 до 100 на языке СИ.Простое число — это натуральное число, имеющее...

Программа нахождения совершенных чисел - C++
Нужно написать программу которая выводит совершенные числа...

Почему программа поиска простых чисел работает только до 61? - C++
Добрый день, Помогите, пожалуйста, разобраться. Программа для поиска простых чисел. На экран отображает только простые числа до 61, ...

Программа нахождения четных чисел в массиве. - C++
В одномерном массиве нужно найти количество четных чисел(желательно с помощью функции). Заранее благодарен!

Программа для нахождения автоморфных чисел. - C++
Задача такая: Напечатать N автоморфных чисел (автоморфным называется число, совпадающее с младшими цифрами своего квадрата). ( напр....


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

Или воспользуйтесь поиском по форуму:
SerVal
23 / 23 / 2
Регистрация: 16.04.2015
Сообщений: 208
24.07.2016, 16:49     Программа нахождения простых чисел #26
Цитата Сообщение от Serg_o_Grey Посмотреть сообщение
шустрая не программа а проц
На моём зачуханном Коре Квад 2,8 GHz тоже шустро.
Yandex
Объявления
24.07.2016, 16:49     Программа нахождения простых чисел
Ответ Создать тему
Опции темы

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