Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Nalezení prvočísel v poli

Aktivity
Avatar
Marek Klympuš:23.5.2017 19:40

Dobrý den potřeboval bych modifikovat program aby fungoval v poli.

void hledani_prvocisla (int pole[], int pocet_prvku)
{
int cislo = 0, i;
printf("Ověření prvočísla\n"
"============­==\n\n"
"Zadejte zkoumané kladné celé číslo: ");
scanf ("i%", &cislo);

if(cislo<2)
{
printf("\nZadané číslo %i neni prvočíslem.\n",cis­lo);
return;
}
// optimalizace - sudá čísdla kromě 2 nás nezajímají
if(cislo%2 == 0 && cislo!=2)
{
printf("\nZanené číslo %i není prvočíslem.\n",cis­lo);
return;
}
// pak stačí zkoumat jen liché dělitele
for(i=3,i<cis­lo;i+=2) //Dalo by se ještě vylepšit použitím odmocniny ... i<=sqrt(cislo)0
if(cislo%i == 0)
{
printf("\nZanené číslo %i není prvočíslem.\n",cis­lo);
return;
}
printf("\nZadané číslo %i je prvočíslem.\n",cis­lo);
}

 
Odpovědět
23.5.2017 19:40
Avatar
matusevsky
Člen
Avatar
matusevsky:6.6.2017 21:53

tu je upravena funkcia a taktiež celý program

#include <stdio.h>

#define PCIS 5 // tu je definovany pocet cisel

void hledani_prvocisla (int pole[], int pocet_prvku);

int p[PCIS]; // tu je miesto pre pole cisel

void main(void)
{// tu si definuejeme cisla, ktore chceme preverit
p[0]=13;
p[1]=21;
p[2]=47;
p[3]=7;
p[4]=9;

// tu zavolame funkciu,ktora preveri cisla v cykle
hledani_prvocisla (p,PCIS);

return;
}

void hledani_prvocisla (int pole[], int pocet_prvku)
{
int cislo = 0, i,j,indik;
// cisla su posielane parametrami funkcie
//printf("Oveeni prvocisla\n"
//"==========­====\n\n"
//"Zadejte zkoumane kladne cele cislo: ");
//scanf ("%d", &cislo);
//printf ("Zadali ste: %d\n", cislo);
for(j=0;j < pocet_prvku;j++)
{cislo=pole[j];
if(cislo<2)
{printf("\nZadané cislo %d neni prvocislem.\n",cis­lo);
continue;
}
// optimalizace - suda cisdla kromì 2 nás nezajimaji
if(cislo%2 == 0 && cislo!=2)
{printf("\nZanene cislo %d neni prvocislem.\n",cis­lo);
continue;
}
// pak staci zkoumat jen liché dìlitele
indik=0;
for(i=3;i<cis­lo;i+=2) //Dalo by se ještì vylepšit použitím odmocniny ... i<=sqrt(cislo)0
if(cislo%i == 0)
{printf("\nZanene cislo %d není prvocislem.\n",cis­lo);
indik=1;
break;
}
if(indik == 0)
printf("\nZadane cislo %d je prvocislem.\n",cis­lo);
}
}

 
Nahoru Odpovědět
6.6.2017 21:53
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.