Zjednodušení kodu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zjednodušení kodu – C / C++ – Fórum – Programujte.comZjednodušení kodu – C / C++ – Fórum – Programujte.com

 

Empty
~ Anonymní uživatel
6 příspěvků
16. 2. 2013   #1
-
0
-

Ahoj, 

Zadání :Napište funkci, která počítá v pořadí N-té prvočíslo. Hodnota N se zadává jako parametr funkce.

#include <stdio.h>
#include <conio.h>
#define is_prime(x) ((PrimeNumber(x))==x)
#define PINCH 0.01

unsigned int PrimeNumber(unsigned int x)
{
  unsigned int i;
  if(x<=2 || x%2==0)
    return 2;
  else
    for(i=3;i<=(sqrt(x)+PINCH);i+=2)
      if(x%i==0)
        return i;
  return x;
}

unsigned int prvocislo(unsigned int n)
{
  unsigned int i=0;
  while(n!=0){
    i++;
    if(is_prime(i))
      --n;
  }
  return i;
}

int main (void)
{
  unsigned int i;
  printf("Zadej poradi prvocisla: ");
  scanf("%d",&i),getchar();
  printf("%d-te prvocilo je %d.n",i,prvocislo(i));
  getch();
  return 0;
}

Dokázali by jste tento kod zjednodušit?

Díky moc!  

Nahlásit jako SPAM
IP: 77.48.173.–
KIIV
~ Moderátor
+43
God of flame
16. 2. 2013   #2
-
0
-

cela ta sekce prvocislo tam dela pomerne velky narust slozitosti vypoctu (ale to bude asi spis ilustracni funkcionalita)...  taky se nemusi vubec pouzivat math na sqrt... staci udela   i*i<=x

PrimeNumber muze rovnou vracet true nebo false ... false kdyz narazi na delitele a true na konci... - nepotrebujes pak zadny makro

Nahlásit jako SPAM
IP: 94.112.35.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Empty
~ Anonymní uživatel
6 příspěvků
17. 2. 2013   #3
-
0
-

Jestli se tě mohu zeptat, jak by si to napsal  

Nahlásit jako SPAM
IP: 77.48.173.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 143 hostů

Podobná vlákna

Zjednodušení kódu — založil sXe

Zjednodušení kodu — založil marpit

Zjednoduseni kodu — založil Mutagen

Zjednodušení kódu — založil Sergei

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý