Zdravím, potřeboval bych pomoct s programem - je to program, který má zjistit největšího dělitele čísla, které zadáme. Například
největší dělitel čísla 9 je 3, 800 400 a tak dale. A pokud zadame prvocislo, vypise se, ze se jedna o prvocislo. Mi program funguje
pouze při vložení sudého čísla a nevypisu je, že se jedná o prvočíslo. Jsem začátečník, mohl by mi to nekdo doplnit? Děkuji
int main(int argc, char* argv[])
{
int a, x=2, e, z;
while ((e=getch()) != 'e' ) {
printf("\nZadej cele cislo : ");
scanf("%d",&a);
if ((a % x)==0) {
printf("\nNejvetsi delitel je : %d",a/x);
}
else {
while ((a % x)==0) {
x++;
}
}
}
return 0;
}
Fórum › C / C++
C - program Nejvetsi delitel
Pokud tazatel hledá algoritmus ke stanovení největšího SPOLEČNÉHO dělitele, pak je to algoritmus nazvaný "Euklidův algoritmus". Funguje ovšem pouze v množině N, což ovšem předpokládám stačí.
Pokud se tedy tazatel ptal na tohle, jelikož jeho příspěvěk je velmi chaotický...
potom je ten kód uplně špatně
kód v C++
#include "iostream"
using namespace std;
int main(){
int a,b;
cout << "Zadejte první číslo: ";
cin >> a;
cout << "Zadejte druhé číslo: ";
cin >> b;
while(a != b){
if (a>b)
a=a-b;
else
b=b-a;
};
cout << "Společný dělitel je: " << a;
cin.get();
cin.get();
return 0;
}
neni marny najit nejmensiho delitele (vetsiho nez 1) a tim vydelit cislo... pak mas i jeho "doplnek" ...
+ nema smysl kontrolovat delitele dal nez do odmocniny z toho cisla...
pokud si nenasel delitel pred tim tak ho nenajdes ani pak...
jen takovej priklad:
12 -> zacinam dvojkou (jednicka by byla k nicemu protoze bychom nalezli cislo samo) ... ano je delitelne dvojkou ... 12:2 = 6 ... a 6 je nejvetsi delitel krom cisla sameho...
EDIT: trochu sem upravil pojmy
Mihulik:
Jéžiš. Vždyť oni přece myslí největšího dělitle který je menší než zadané číslo n! Jen to špatně formulují. :smile1:
MZetko napsal:
Mihulik:
Jéžiš. Vždyť oni přece myslí největšího dělitle který je menší než zadané číslo n! Jen to špatně formulují. :smile1:
oki oki, já to samozřejmě pochopil, jenže člověk musí umět formulovat dotaz, když něco chce, že...
V tomhle případě bude asi nejlepší způsob to, co psal KIIV. Jen bych doplnil, když už se tu hádáme o "prkotinách", že za nejmenšího dělitele samozřejmě nelze považovat jedničku, pokud tazatele vyžaduje takovéto zadání:)
MaS: pro 2 vstupy jsem to udelal 2ma zpusoby. Timto a jeste jednim imho, ale na to prvocislo jsem prisel tez
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Nejvetsi spolecny delitel — založil Jirka
Největší společný dělitel — založil Blujacker
Největší společný dělitel — založil Dave
Největší společný dělitel n čísel — založil Honzaxy
3 největší číslo — založil d
Moderátoři diskuze