| | |
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
Autor | Správa |
---|
Registrovaný: 03.09.20 Prihlásený: 11.07.21 Príspevky: 31 Témy: 10 | Napísal Jur_3: 22.12.2020 16:42 | |
|
Ahojte, prosim o pomoc s tymto prikladom. Spravil som ho po svojom, ale chcel by som ho spravit podla zadania, co sa mi akosi nedari. Zvlast pre tuto vetu: Citácia: Použite podobný algoritmus ako Eratostenovo sito, iba namiesto poľa logických hodnôt použite pole hodnôt typu int, A obvzlast pre slovo: Citácia: iba Mozno sa az moc zaoberam podrobnostami, ale o tom to je, ci? Inak chapem to dobre, ze pole logickych hodnot su tie booly? Tu je zadanie: V tomto príklade využijeme podobný postup ako Eratostenovo sito, aby sme pre každé číslo z rozsahu 2 až n zistili, koľkými rôznymi prvočíslami je deliteľné. Napríklad číslo 12 má delitele 1, 2, 3, 4, 6, a 12. Z toho iba 2 a 3 sú prvočísla, je teda deliteľné dvomi rôznymi prvočíslami. Na vstupe je číslo n, pričom platí, že 2 ≤ n ≤ 1000. Pre každé číslo od 2 po n vypíšte na výstup počet jeho prvočísených deliteľov vo formáte podľa príkladu. Algoritmus: Použite podobný algoritmus ako Eratostenovo sito, iba namiesto poľa logických hodnôt použite pole hodnôt typu int, v ktorom si pre každé číslo i pamätáte, koľko ste doteraz našli jeho prvočíselných deliteľov. Keď potom nejaké číslo vyhlásite za prvočíslo, namiesto “škrtania” jeho násobkov im zvýšte počítadlo prvočíselných deliteľov o 1. Programy, ktoré použijú iný postup, nezískajú plný počet bodov. Príklad vstupu: 30 Príklad výstupu: 2:1 3:1 4:1 5:1 6:2 7:1 8:1 9:1 10:2 11:1 12:2 13:1 14:2 15:2 16:117:1 18:2 19:1 20:2 21:2 22:2 23:1 24:2 25:1 26:2 27:1 28:2 29:1 30:3 Tu je Eratostenovo sito: Kód: #include <iostream> using namespace std;
int main() { const int n = 30; bool a[n + 1];
for (int i = 2; i <= n; i++) { a[i] = true; } for (int i = 2; i <= n; i++) { if (a[i]) { cout << i << " "; for (int j = 2 * i; j <= n; j = j + i) { a[j] = false; } } } cout << endl; } vystup: 2 3 5 7 11 13 17 19 23 29, cize naslo vsetky prvocisla od 2 po n. A moj program, ktory pracuje, ale spravil som ho inak ako je pisane v zadani: Kód: #include <iostream> using namespace std;
int main() { int n;
cout << "Zadajte cislo 'n' od 2 po 1000: "; cin >> n;
while (n < 2 || n > 1000) { cout << "Zadali ste nespravne cislo 'n'! " << endl; cout << "Zadajte znovu cislo 'n' od 2 po 1000: "; cin >> n; }
bool a[n + 1]; int pole[n + 1] = {0};
for (int i = 2; i <= n; i++) { a[i] = true; } for (int i = 2; i <= n; i++) { if (a[i]) { for (int k = 2; k <= n; k++) { if (k % i == 0) { pole[k] += 1; } }
for (int j = 2 * i; j <= n; j = j + i) { a[j] = false; } } cout << i << " : " << pole[i] << " "; } cout << endl;
return 0; } Dakujem za rady, som zaciatocnik.
|
|
Registrovaný: 03.09.20 Prihlásený: 11.07.21 Príspevky: 31 Témy: 10 | Napísal autor témy Jur_3: 28.12.2020 12:29 | |
|
Ahojte, takze nikto nepise, tak som na to pozrel este sam a myslim, ze som sa posunul blizsie. Splnil som toto zadanie: Citácia: keď potom nejaké číslo vyhlásite za prvočíslo, namiesto “škrtania” jeho násobkov im zvýšte počítadlo prvočíselných deliteľov o 1. Teda este mi chyba splnit: Citácia: keď potom nejaké číslo vyhlásite za prvočíslo Pozeral som si to a ono to naozaj funguje, ked v tom prvom 'for' cykle dam nie 'i' od 2 po n, ale len prvocisla od 2 po n. Skusal som to cez nejaku podmienku, ale akosi to nejde. Myslim, ze to zadanie je celkom matuce, pretoze neviem, ako moc sa ma ten program podobat na eratostenovo sito a co si mozem spravit podla seba. Kód: #include <iostream> using namespace std;
int main() { const int n = 30; int a[n + 1] = {0};
for (int i = 2; i <= n; i++) { a[i] += 1; for (int j = 2 * i; j <= n; j = j + i) { a[j] += 1; }
cout << i << " : " << a[i] << " "; } cout << endl; return 0; } // Spojený príspevok 28.12.2020 17:26Tak som to spravil podla zadania, myslim. Aj ked teda tu podmienku na prvocisla som si nasiel na internete. Inak cital som si pravidla a ja nie som student a nerobim ulohy do skoly, aj ked je pravda, ze tieto ulohy, ktore som nasiel su na internete pre studentov skoly a preto by zase asi nebolo uplne dobre aby to tu maly uz vypracovane, takze ak chcete v pohode tuto temu zmazte. To necham na Vas. Spravil som si nejake kurzy C++ a teraz sa ucim aj vdaka roznym uloham, ktore najdem na internete. Ako som uz pisal som zaciatocnik a obcas, ked si neviem rady, tak som to dal sem. Kód: #include <iostream> using namespace std;
int main() { int n; cout << "Zadajte cislo 'n'od 2 do 1000: "; cin >> n;
while (n < 2 || n > 1000) { cout << "Zadali ste nespravne cislo 'n'! "; cout << "Zadajte znovu cislo 'n' od 2 do 1000: "; cin >> n; }
int a[n + 1] = {0};
for (int i = 2; i <= n; i++) { for (int k = 2; k <= i; k++) { if (!(i % k) && (i != k)) {break;} if (k == i) { a[i] += 1; for (int j = 2 * i; j <= n; j = j + i) { a[j] += 1; } } } cout << i << " : " << a[i] << " "; } cout << endl; return 0; }
|
|
| Stránka: 1 z 1
| [ Príspevkov: 2 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| priklad v C++ v Assembler, C, C++, Pascal, Java | 4 | 369 | 06.12.2020 14:26 Jur_3 | | zadanie v C++ priklad na elektrotechniku, pomozte mi pliiis v Assembler, C, C++, Pascal, Java | 4 | 1604 | 09.06.2006 14:40 Harlequin | | prvocisla v Assembler, C, C++, Pascal, Java | 10 | 5564 | 16.01.2011 16:31 Lukasito | | delitele cisla v Assembler, C, C++, Pascal, Java | 3 | 1910 | 18.11.2006 10:17 audiotrack | | Príklad [ Choď na stránku: 1, 2 ] v Vzdelanie, štúdium, škola | 50 | 3004 | 20.11.2007 16:28 nZL | | Priklad v Assembler, C, C++, Pascal, Java | 1 | 1253 | 17.03.2008 16:27 HT | | Príklad v PHP, ASP | 22 | 1208 | 08.11.2007 15:33 pitrik1 | | Priklad Delphi v Delphi, Visual Basic | 3 | 506 | 25.01.2017 8:46 focko | | Delphi - príklad v Delphi, Visual Basic | 2 | 714 | 07.11.2010 23:16 majso | | Java Príklad v Assembler, C, C++, Pascal, Java | 9 | 695 | 21.04.2012 15:51 nBXXL | | priklad z fyziky v Vzdelanie, štúdium, škola | 8 | 1257 | 15.03.2008 15:19 petos | | Príklad z Fyziky v Vzdelanie, štúdium, škola | 3 | 427 | 13.12.2014 19:29 Daron | | Priklad z fyziky v Vzdelanie, štúdium, škola | 18 | 1727 | 06.05.2008 22:07 molotow | | Príklad z fyziky v Vzdelanie, štúdium, škola | 4 | 319 | 14.05.2013 22:10 InVader | | Priklad pre hlavicky v Vzdelanie, štúdium, škola | 17 | 843 | 09.05.2010 18:08 eXistenZ | | Theveninova veta - priklad v Elektronika | 2 | 3722 | 03.01.2008 18:42 sike9 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|