Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdbool.h>
- #include <string.h>
- void eratosthenovoSito(int max) {
- // Vytvoříme pole a nastavíme všechny hodnoty na true
- bool prvocisla[max + 1];
- memset(prvocisla, true, sizeof(prvocisla));
- prvocisla[0] = false; // 0 není prvočíslo
- prvocisla[1] = false; // 1 není prvočíslo
- // Algoritmus síta
- for (int p = 2; p * p <= max; p++) {
- // Pokud p nebylo škrtnuto, je to prvočíslo
- if (prvocisla[p] == true) {
- // Výškrtáme všechny násobky čísla p
- for (int i = p * p; i <= max; i += p) {
- prvocisla[i] = false;
- }
- }
- }
- // Výpis nalezených prvočísel
- printf("Prvocisla do %d jsou:\n", max);
- for (int p = 2; p <= max; p++) {
- if (prvocisla[p]) {
- printf("%d ", p);
- }
- }
- printf("\n");
- }
- int main() {
- int limit = 100;
- eratosthenovoSito(limit);
- return 0;
- }
Advertisement