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

Как выразить условие в операторе if для нахождения простого числа - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нахождение всех возможных путей для спуска с вершины матрицы http://www.cyberforum.ru/cpp-beginners/thread619219.html
имеется массив вида 1 2 х х 3 4 5 х 6 7 8 9 высота массива = 3 количество вершин = 2 более удобное графическое представление
C++ Методом деления отрезка пополам и методом итерации найти приближенное значение корня 2х3+3х-1=0 на интервале [0;0,8] абсолютная погрешность не превыша Методом деления отрезка пополам и методом итерации найти приближенное значение корня 2х3+3х-1=0 на интервале абсолютная погрешность не превышает 0,001. Сравнить результаты методов вычисления. заранее благодарю http://www.cyberforum.ru/cpp-beginners/thread619218.html
C++ Книга Стивена Поттса
помогите найти книгу: "BORLAND C++ в примерах" Автор: Стивен Поттс, Тимоти С. Монк
Лабиринт C++
#include <iostream> #include <fstream> #include <conio.h> #include <time.h> #include <cmath> #include <stdio.h> using namespace std; int main()
C++ Конкатенация строк http://www.cyberforum.ru/cpp-beginners/thread619205.html
Должно быть консольное приложение. Очень простой вопрос, но сам что-то завис, и немогу найти что хочу. Значит так есть такой кусок кода hf=FindFirstFile("d:\\Auto\\*", &FindFileData); ///********************* А хочу так hf=FindFirstFile("d:\\Auto\\ /*сюда вставить переменную типа стринг*/ \\*", &FindFileData); Ну в общем чтобы можна было по папкам переходить.(Зайти в одну...
C++ Зачем оставлять переменные-члены класса закрытыми? Вот пишут,что нужно переменные - члены класса оставлять закрытыми, используя для их установки значений или возвращений значений, методы доступа. Но зачем так делать? подробнее

Показать сообщение отдельно
PSIAlt
86 / 86 / 8
Регистрация: 19.06.2012
Сообщений: 245
06.07.2012, 21:43     Как выразить условие в операторе if для нахождения простого числа
Цитата Сообщение от rinat_w Посмотреть сообщение
Если учесть что любое простое число большее трех можно представить в виде 6k±1 можно сократить время выполнения алгоритмов в почти шесть раз:
Спасибо, отличный вариант. Правда время сокращается в 3 раза, а не 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
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <cmath>
#include <vector>
 
std::vector<int> primes;
 
bool isprime(int n){
    int nm = sqrt(n)+1;
    for( auto &i : primes )
        if (n%i==0) return false;
    return true;
}
int main(){
    using namespace std;
    int n;
    cout << "n=";
    cin>>n;
    primes.reserve( n/3+1 );
    cout << "Prime numbers 1.." << n << ":\n" << 2 << ((n>2)?" 3":"");
    if( n>3 ) {
       for( int i=6; i<=n; i+=6 ) {
           if( isprime(i-1) ) {
               cout<<" "<<i-1;
               primes.push_back(i-1);
            }
           if( isprime(i+1) && i+1<=n ) {
                cout<<" "<<i+1;
                primes.push_back(i+1);
           }
       }
    }
    cout<<endl;
    system("pause");
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru