Programování v C - generování prvočísel

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Odpovědět
kiklopik
nováček
Příspěvky: 1
Registrován: 02 kvě 2013 10:41

Programování v C - generování prvočísel

Příspěvek od kiklopik »

Lidi potřebuju pomoct mám z programování semestrálku se zadáním:

Napište program v jazyce C: generování prvočísel
Vytvořte program, který bude generovat prvočísla dle zadání uživatele, např. prvočísla
v daném intervalu, všechna prvočísla do zadaného čísla apod.
Umožněte načtení dat z klávesnice a ze souboru. Soubor je textový. Výstup programu
umožněte do souboru nebo na obrazovku. Ovládání programu umožněte pomocí
jednoduchého menu. Program musí obsahovat alespoň jednu uživatelskou funkci a musí
být ošetřen proti chybným vstupům.

Tak jeslti by jste to někdo nedokázal vytvořit díky moc.
Uživatelský avatar
honzaik
Level 2.5
Level 2.5
Příspěvky: 337
Registrován: 09 říj 2011 12:03
Kontaktovat uživatele:

Re: Programování v C - generování prvočísel

Příspěvek od honzaik »

nyslim ze ti to nikdo nebude vytvaret :D jediny co ti poradim je ze si najdi najakej algoritmus na hledani prvocisel a implementuj to. to snad umis

--- Doplnění předchozího příspěvku (02 Kvě 2013 16:33) ---

ehm tak díky mé povaze sem si musel dát "challenge" to zkusit udělat

Kód: Vybrat vše

package eu.honzaik.test;

public class Test04 {

   private static int start = 0;
   private static int end = 1000;
   private static int primes = 0;
   
   public static void main(String[] args) { 
      double startTime = System.currentTimeMillis();
      while(start < end){
         checkPrime(start);
         start++;
      }
      System.out.println(primes);
      System.out.println("It took "  + (System.currentTimeMillis() - startTime)/1000  + " s");
   }

   private static void checkPrime(int input) {
      int problems = 0;
      for(int i = 1; i < input / 2 + 1; i++){
         if(input % i == 0){
            problems++;
            if(problems > 1) return;
         }
      }
      if(problems == 1){
         //System.out.println(input + " is a prime!");
         primes++;
      }
   }

}


je to v javě :D a je to teda pomalý, ale jsem spokojen že sem to splácal za 10 min a vymyslel si vlastní algoritmus (když se nad tim zamyslim je to primitvní, takže ne moc rychlý)
myslim že v těhle příkladech je java to samý jako C (nečekaně, java vychází z C :D)

základ je tohle podle mě :D, ikdyž to zcela neřeší tvůj problem :D

edit: trochu sem to optimalizoval :D
ello dere
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7404
Registrován: 23 pro 2010 09:23

Re: Programování v C - generování prvočísel

Příspěvek od faraon »

A s čím přesně máš problém?

  • Jak poznat prvočíslo? Nejdřív se mrkni jestli není číslo sudé, a pak ho projeď cyklem od 3 do druhé odmocniny toho čísla (přičítej po dvou, protože stačí testovat liché dělitele), pokud ti někde vyjde dělení beze zbytku, není to prvočíslo.
  • Jak komunikovat s uživatelem? Stačí printf() a scanf().
  • Jak načítat a zapisovat soubor? Zase stačí fopen(), fprintf(), fscanf() a fclose().
  • Jak vytvořit menu? Pomocí switch() a case.

Tu uživatelskou funkci můžeš použít zrovna na to zjištění jestli je prvočíslo: prvocislo(cislo), a také na generování řady prvočísel v zadaném rozsahu, ta se tak bude moci použít pro různá zadání: generuj(pocatek,konec), a bude využívat tu předchozí...
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Pomoc s výběrem ntb na programování v .NET 25k
    od Kubasky » » v Rady s výběrem hw a sestavením PC
    1 Odpovědi
    3010 Zobrazení
    Poslední příspěvek od petr22

Zpět na „Programování a tvorba webu“