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

kiklopik
nováček
Příspěvky: 1
Registrován: květen 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod kiklopik » 02 kvě 2013 10:48

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.

Reklama
Uživatelský avatar
honzaik
Level 2.5
Level 2.5
Příspěvky: 337
Registrován: říjen 11
Pohlaví: Muž
Stav:
Offline
Kontakt:

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

Příspěvekod honzaik » 02 kvě 2013 12:25

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: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod faraon » 02 kvě 2013 22:48

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)


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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 4 hosti