Примеры работы программы
Предположим, что мы получаем таблицу простых до 500'000 (41'538 простых чисел). Простое деление при таком ограничении никогда не занимает больше нескольких секунд на современных компьютерах. Причем хранить можно только разности между простыми (или их половины), а не сами числа, так как p[k] - p[k-1] можно поместить в 1 байт вместо четырех, если p[k] <= 1'872'851'947 (а половину этой разности - если p[k] <= 1'999'066'711'391). Кроме того, не нужно делать больше делений после того, как кончится таблица простых, так как есть лучшие методы для удаления малых делителей. И, наконец, заметим, что нет необходимости в вычислении L:= [ N1/2 ] во время инициализации, так как проверка d >= L в шаге 4 может быть заменена на q <= L, где q - евклидово частное при делении N на d: N = q * d + r, обычно вычисляемое одновременно с остатком в шаге 3.
Постановка задачи Написать программу, определяющую, какая из курсорных клавиш была нажата. Листинг программы
#include <cstdio> #include <conio.h> #include <clocale> int main() { setlocale (LC_ALL, "Russian"); int key; printf("\n Нажмите одну из курсорных клавиш: \n"); key = getch(); key=getch(); switch (key){ case 77: printf ("Стрелка вправо\n"); break; case 75: printf ("Стрелка влево\n"); break; case 72: printf ("Стрелка вверх\n"); break; case 80: printf ("Стрелка вниз\n"); break; deafult: printf ("Не стрелка\n"); break; } } Примеры работы программы
Вывод: В ходе работы мы познакомились с ветвлениями, функцией getch оператором switch а также с константными выражениями case.
|