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

Найти все простые числа на отрезке [a,b]. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ln - ряд Тейлора http://www.cyberforum.ru/cpp-beginners/thread359587.html
double ln(double x, double eps) { double T,S; int K; T=x; K=1; S=T; do{ K=K+1; T=-T*x/K; S=S+T;
C++ printf и scanf против cin и cout Друзья мои,стал учить плюсы и столкнулся с кучей противоречий. То что в С нет cin/cout я знаю. Но вот в С++ возможно использование printf/scanf. Объясните мне разницу этих операторов. Из того,что я находил,говорилось,что cin/cout - сам понимает что и как принимать/выводить и что-то о скорости вывода,но ничего дельного. Объясните пожалуйста на более достойном уровне разницу. Спасибо) http://www.cyberforum.ru/cpp-beginners/thread359575.html
C++ Помогите с макросом
нужно написать макрос(если это возможно) сейчас у меня код выглядит так: std::cin<<a<<b<<c; а после обработки должно выглядить так if(read)std::cout<<a<<b<<c; write(a);write(b);write(с); причем букв a b с может быть любое количество(от одного до 5)
Функция Mid C++
В бэйсике есть такая функция Mid на С++ есть ли такая функция ? Напишите если есть с примером и пояснением.
C++ Разработать класс «Студент» http://www.cyberforum.ru/cpp-beginners/thread359554.html
Добрый вечер)если не сложно , помогите реализовать одну из программ)а то на завтра нужно чтобы было всё готово, а дела не позволили справиться с этим на выходных) 1)Разработать класс «Студент». Класс должен содержать поля для хранения имени, возраста, пола и телефонного номера. Причем имя должно храниться в динамической памяти. Реализовать конструкторы (в том числе конструктор копирования) и...
C++ метод Симпсона Может кто помочь? необходимо решить интеграл с точностью 10^-6 для а, изменяющегося от 0 до 5 с шагом 1. Используя метод Симпсона Не получается сделать вычисление для изменяющегося параметра а... считает только для 1 изначально заданного условия. может кто подправить??? /*Вычисление интеграла (2/pi^1/2)*(x^1/2)/1+e^(1-a)) Методом Симпсона */ #include <iostream> #include <math.h>... подробнее

Показать сообщение отдельно
LosAngeles
Заблокирован
07.10.2011, 13:58     Найти все простые числа на отрезке [a,b].
silent_1991, под "всё" я подразумевал "всё что можно". Тут же ещё рекурсивный вызов как бы, но зато никаких проверок на простоту на этапе выполнения нет. Вплане быстодействия наверно лучше комбинация run\compile time
Код
for (i)
  if (isPrime<i>::value)
    cout << i;
но простота на этапе выполнения проверяется, слишком тривиально, чтобы выкладывать это)

Добавлено через 18 минут
впринципе это всё оптимизации поддаётся, в идеальном случае компилятор может и не вызывать конструкторов и забацать cout подряд один за другим, MVSC2010 почти так и сделал 17-23 он вывел в одном конструкторе
асм
Assembler
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
36
37
38
39
40
41
42
43
44
45
template <int x, bool y = isPrime<x>::Yes > struct OutputAllPrimes;
 
 
template <int x> struct OutputAllPrimes<x, true>
{
    OutputAllPrimes() 
010910E0  push        ebp  
010910E1  mov         ebp,esp  
    {
        cout << x << " is prime!" << endl;
010910E3  mov         eax,dword ptr [__imp_std::endl (1092044h)]  
010910E8  mov         ecx,dword ptr [__imp_std::cout (1092050h)]  
010910EE  push        eax  
010910EF  push        17h  
010910F1  call        dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (1092058h)]  
010910F7  push        eax  
010910F8  call        std::operator<<<std::char_traits<char> > (1091280h)  
010910FD  add         esp,4  
01091100  mov         ecx,eax  
01091102  call        dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (109205Ch)]  
        OutputAllPrimes<x-1>();
01091108  mov         ecx,dword ptr [__imp_std::endl (1092044h)]  
0109110E  push        ecx  
0109110F  mov         ecx,dword ptr [__imp_std::cout (1092050h)]  
01091115  push        13h  
01091117  call        dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (1092058h)]  
0109111D  push        eax  
0109111E  call        std::operator<<<std::char_traits<char> > (1091280h)  
01091123  add         esp,4  
01091126  mov         ecx,eax  
01091128  call        dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (109205Ch)]  
0109112E  mov         edx,dword ptr [__imp_std::endl (1092044h)]  
01091134  mov         ecx,dword ptr [__imp_std::cout (1092050h)]  
0109113A  push        edx  
0109113B  push        11h  
0109113D  call        dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (1092058h)]  
01091143  push        eax  
01091144  call        std::operator<<<std::char_traits<char> > (1091280h)  
01091149  add         esp,4  
0109114C  mov         ecx,eax  
0109114E  call        dword ptr [__imp_std::basic_ostream<char,std::char_traits<char> >::operator<< (109205Ch)]  
01091154  lea         eax,[ebp+0Bh]  
01091157  push        eax  
01091158  call        OutputAllPrimes<13,1>::OutputAllPrimes<13,1> (1091170h)  
    };

7-13 во втором, 5-2 в третьем. Три вызова не слишком много, потенциально может обогнать цикл из mov+test
 
Текущее время: 14:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru