SVty

Hledání prvočísel 2

Oct 9th, 2026
75
0
47 min
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.98 KB | Source Code | 0 0
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3. #include <string.h>
  4.  
  5. void eratosthenovoSito(int max) {
  6.     // Vytvoříme pole a nastavíme všechny hodnoty na true
  7.     bool prvocisla[max + 1];
  8.     memset(prvocisla, true, sizeof(prvocisla));
  9.  
  10.     prvocisla[0] = false; // 0 není prvočíslo
  11.     prvocisla[1] = false; // 1 není prvočíslo
  12.  
  13.     // Algoritmus síta
  14.     for (int p = 2; p * p <= max; p++) {
  15.         // Pokud p nebylo škrtnuto, je to prvočíslo
  16.         if (prvocisla[p] == true) {
  17.             // Výškrtáme všechny násobky čísla p
  18.             for (int i = p * p; i <= max; i += p) {
  19.                 prvocisla[i] = false;
  20.             }
  21.         }
  22.     }
  23.  
  24.     // Výpis nalezených prvočísel
  25.     printf("Prvocisla do %d jsou:\n", max);
  26.     for (int p = 2; p <= max; p++) {
  27.         if (prvocisla[p]) {
  28.             printf("%d ", p);
  29.         }
  30.     }
  31.     printf("\n");
  32. }
  33.  
  34. int main() {
  35.     int limit = 100;
  36.     eratosthenovoSito(limit);
  37.     return 0;
  38. }
  39.  
Advertisement