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

Простые числа. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ счет знаков и символов в тексте http://www.cyberforum.ru/cpp-beginners/thread208868.html
здравствуйте. собственно перед созданием темы я посмотрел форум и прогуглил, конечно нашел но ничего не понял. можете помочь составить программу которая читает символы с файла при операторах:...
C++ Непонятно Есть простая програмка, решающая логические уравнения. Все решает замечательно, но при вводе короткого уравнения a|b по непонятной причине ждет продолжения ввода, при вводе аналогичного уравнения с... http://www.cyberforum.ru/cpp-beginners/thread208860.html
C++ Большие числа.
Здравствуйте. Помогите найти оптимальный алгоритм решения задачи. Известно, что число 123^137 при делении на m =...
не получается! C++
никак не могу правильно сосотавить решение задачи: ввести с клавиатры вещественное число Х .Вычислить y=lg(x2+3)/arccos0.1x
C++ тип переменной http://www.cyberforum.ru/cpp-beginners/thread208848.html
Подскажите пожалуйста, можно ли в С++ задать тип переменной, ограничивающий значение дробного числа, по своему усмотрению (например 17 знаков после запятой) ?:)
C++ транспонирования Составить подпрограмму – функцию для транспонирования квадратной матрицы A(n*n) и использовать ее для транспонирования матриц С(2*2) и D(5*5). Операция транспонирования заключается в замене i – тых... подробнее

Показать сообщение отдельно
Dangelo
7 / 7 / 1
Регистрация: 28.11.2010
Сообщений: 57

Простые числа. - C++

12.12.2010, 03:50. Просмотров 613. Ответов 1
Метки (Все метки)

Доброй ночи. Есть вот такое задание
Исходные данные
В первой строке находится ровно одно целое число k, задающее количество чисел в списке. За ним следуют k целых чисел, по одному в строке. Все числа положительные и не превосходят 15000.
Результат
Для каждого числа n из списка вы должны вывести n-е по счёту простое число. Ответ для каждого числа должен находиться в отдельной строке.
Пример
исходные данные результат
4 5
3 3
2 11
5 17
7

и такой код:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "stdafx.h"
#include <stdio.h>
unsigned  int t[170000];
unsigned int o=170000;
void mass();
void prost (int p);
void main()
{
    int k, n[15001], p;
    scanf ("%d", &k);
    for (int i=0; i<k; i++)
    {
        scanf ("%d",&n[i]);
    }
    mass();
    for (int i=0; i<k; i++)
    {
        
        p=n[i];
        prost(p);
    }
    
    scanf("%d",&k);
}
void mass () //Функция вычисления простых чисел;
{
    int p=2, i2=2; 
    for (int i=2; i<=o; i++) //заполняем массив числами
    {
        t[i]=i;
    }
    
    
    while (p<o)  // Алгоритм Эратосфена
    {
        while (t[p]!=-1)
        {
            while ( (i2 * p) <= o)
            {
                t[i2*p]=-1; 
                i2++;
            }
            i2=2;
            p++;
        }
        p++;
    }
}
void prost (int p)
{
    int j=2;
    while (p)
    {
        if (t[j]!=-1)
        {
            p--;
        }
        j++;
    }
    printf ("%d\n",t[j-1]);
}
Вопрос: Как можно оптимизировать код для более быстрой работы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru