Bilangan prima adalah bilangan asli yang hanya memiliki dua faktor pembagi, yaitu 1 dan bilangan itu sendiri. Contohnya : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, ......
Ada yang tau metode buat cari bilangan prima ga?
Salam kenal admin
rumus untuk bilangan prima ya...?
Bukankah jawaban dari pertanyaan ini ada hadiahnya. yaitu 1 juta dollar.......
kalo aku masih bisa menemukan rumus untuk bilangan prima yang kurang dari 100
caranya gini
1. bilangan tersebut harus ganjil tentunya
2. bilangan tersebut tidak rangkap (33, 55, dsb)
3.jumlahkan angka tersebut sampai menjadi 1 digit, apabila hasilnya tidak sama dengan 3,6,9. maka dia pasti prima
Kutip dari: al fahrezy pada November 30, 2006, 09:20:47 AM
Salam kenal admin
rumus untuk bilangan prima ya...?
Bukankah jawaban dari pertanyaan ini ada hadiahnya. yaitu 1 juta dollar.......
kalo aku masih bisa menemukan rumus untuk bilangan prima yang kurang dari 100
caranya gini
1. bilangan tersebut harus ganjil tentunya
2. bilangan tersebut tidak rangkap (33, 55, dsb)
3.jumlahkan angka tersebut sampai menjadi 1 digit, apabila hasilnya tidak sama dengan 3,6,9. maka dia pasti prima
Salam kenal al fahrezy :)
wew... 1st post di forum math yahh... pasti pakar math neh ;)
1. Yup, karena genap bisa dibagi 2
2. Yup, karena rangkap bisa dibagi 11
3. Yup, karena kalo sama dgn 3,6,9 bisa dibagi 3
tapi masa hanya sampe di bawah 100? mencari bilangan prima terbesar lagi trend lho :P
Kutip dari: al fahrezy pada November 30, 2006, 09:20:47 AM
Salam kenal admin
rumus untuk bilangan prima ya...?
Bukankah jawaban dari pertanyaan ini ada hadiahnya. yaitu 1 juta dollar.......
Iseng dinaekin lagi ah.. mana tau ada yang ahli math lagi mampir sini. Yup, ada hadiah 1 juta dollar. Seperti post saya di
Riemann Hypothesis - one of the seven Mathematics Millennium Problems.
Maksudnya tadinya sengaja post tentang bilangan prima dulu baru lanjut ke sana... gak sabaran langsung post juga hehe....
Jadi mana yahh pakar math nya neh.. mohon pencerahan ;D
hum.. kalau menggenerate nya bisa dengan Sieve of Eratosthenes. caranya gini :
1. Tulis daftar angka dari 2 sampai bilangan terbesar yang ingin di cek primanya. Kita sebut daftar A.
2. Angka 2 adalah bilangan prima yang pertama, tulis angka 2 di daftar angka kedua ( kita sebut daftar B ). daftar B ini nanti isinya bilangan yang prima.
3. Pada daftar A, coret angka 2 dan semua angka yang habis dibagi 2.
4. Setelah itu, angka pertama pada daftar A yang tidak tercoret merupakan bilangan prima, maka tambahkan pada daftar B.
5. Pada daftar A, coret angka tersebut dan semua angka yang habis dibagi angka tersebut. Pencoretan bisa dimulai dari kuadrat angka tersebut. Misalkan angka yang dicoret adalah 3, maka coret semua kelipatan 3 mulai dari 9. lalu kalau 5 bisa langsung mulai coret dari angka 25.
6. Ulangi langkah tersebut sampai semua daftar A tercoret.
kalau kurang jelas, ini sumbernnya : http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
Kutip dari: wildanr pada Februari 13, 2007, 03:50:40 AM
hum.. kalau menggenerate nya bisa dengan Sieve of Eratosthenes. caranya gini :
1. Tulis daftar angka dari 2 sampai bilangan terbesar yang ingin di cek primanya. Kita sebut daftar A.
2. Angka 2 adalah bilangan prima yang pertama, tulis angka 2 di daftar angka kedua ( kita sebut daftar B ). daftar B ini nanti isinya bilangan yang prima.
3. Pada daftar A, coret angka 2 dan semua angka yang habis dibagi 2.
4. Setelah itu, angka pertama pada daftar A yang tidak tercoret merupakan bilangan prima, maka tambahkan pada daftar B.
5. Pada daftar A, coret angka tersebut dan semua angka yang habis dibagi angka tersebut. Pencoretan bisa dimulai dari kuadrat angka tersebut. Misalkan angka yang dicoret adalah 3, maka coret semua kelipatan 3 mulai dari 9. lalu kalau 5 bisa langsung mulai coret dari angka 25.
6. Ulangi langkah tersebut sampai semua daftar A tercoret.
kalau kurang jelas, ini sumbernnya : http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
Bener kan, abis dinaikin topiknya nongol pakat matematika ;D Sip, dilanjut terus sampe algoritma cari bilangan prima terbesar 8)
Algoritma Bilangan Prima
===========================
procedure BilPrima(num: Integer);
var i, max: integer;
begin
if num=0 then exit;
max := 2000;
for i:= 2 to max do
begin
if ((i=2) or (i=3) or (i=5) or (i=7)) then
begin
Tambahkan ke penyimpanan
num := num-1;
if num=0 then
exit;
end;
if ((i mod 2<>0) and (i mod 3 <> 0) and(i mod 5<>0) and (i mod 7<>0)) then
begin
Tambahkan ke peyimpanan
num := num-1;
if num=0 then
exit;
end;
end;
end;
Souce Lengkap dengan delphi
KutipAlgoritma Bilangan Prima
===========================
procedure BilPrima(num: Integer);
var i, max: integer;
begin
if num=0 then exit;
max := 2000;
for i:= 2 to max do
begin
if ((i=2) or (i=3) or (i=5) or (i=7)) then
begin
Tambahkan ke penyimpanan
num := num-1;
if num=0 then
exit;
end;
if ((i mod 2<>0) and (i mod 3 <> 0) and(i mod 5<>0) and (i mod 7<>0)) then
begin
Tambahkan ke peyimpanan
num := num-1;
if num=0 then
exit;
end;
end;
end;
Souce Lengkap dengan delphi
Siapa tuh yang bikin algorithma pemprograman begitu?
Kalau benar, bisa dapat hadiah NOBEL tuh...!!! he..he..he... sayangnya BELUM TEPAT!
Pertama, mau ngomentarin dulu script programnya yang sedikit acak-acakan!
Kutip
if ((i=2) or (i=3) or (i=5) or (i=7)) then
begin
Tambahkan ke penyimpanan
num := num-1;
if num=0 then
exit;
end;
if ((i mod 2<>0) and (i mod 3 <> 0) and(i mod 5<>0) and (i mod 7<>0)) then
begin
Tambahkan ke peyimpanan
num := num-1;
if num=0 then
exit;
end;
Ini seharusnya bisa disingkat menjadi :
-------------------------------------
if ((i=2) or (i=3) or (i=5) or (i=7)) .or. ((i mod 2<>0) and (i mod 3 <> 0) and(i mod 5<>0) and (i mod 7<>0)) then
begin
Tambahkan ke penyimpanan
num := num-1;
end;
if num=0 then exit;
-------------------------------------
Kedua, mau ngomentarin kesalahan algorithmanya
Script program diatas hanya bisa mengetahui tidak lebih dari
30 bilangan prima.
Kalau program diatas dibahasa manusiakan, bunyinya kurang lebih begini :
Jika angka yang diproses adalah antara (1, 3, 5, 7) atau sisa bagi angka tersebut dengan (2, 3, 5, 7) adalah nol, maka simpan itu sebagai bilangan prima.So.. kesalahannya jelas terlihat, bahwa untuk bilangan yang bisa dibagi dengan 11, 13,
etc.. belum diakomodir oleh program ini. Coba aja, jika program ini harus menentukan angka
121, maka menurut algoritma program diatas, hasilnya 121 termasuk bilangan prima, padahal seharusnya 121 bukanlah bilangan prima (sebab bisa dibagi 11), begitu juga dengan 143, 169,
etc... program ini masih kurang lengkap! So gak ada gunanya variable max diisi dengan 2000 (bahkan nilai yang lebih besar pun, hasilnya tidak valid untuk bilangan prima diatas 113)
Ni situs buat ngecheck bilangan prima :
[pranala luar disembunyikan, sila masuk atau daftar.]
Hi.. All pecinta matematika di nusantara.
Mungkin diantara teman2 sudah pernah dengan Millenium Prize (http://www. claymath. org/millennium/ ) adalah.7 problem dunia matematika yg belom terpecahkan yaitu :
* Birch and Swinnerton-Dyer Conjecture
* Hodge Conjecture
* Navier-Stokes Equations
* P vs NP
* Poincaré Conjecture
* Riemann Hypothesis
* Yang-Mills Theory
nah salah satu problem diatas : Rieman Hypothesis: yg memperkenalkan fungsi zeta, dimana fungsi zeta ini menerangkan tentang pola bilangan prima. masalahnya sampai sekarang belom ada orang yang bisa membuat algoritma dan teori bilangan prima yang mangkus. artinya : belom ada spektrum bilangan untuk mencari faktor2 bilangan prima. kalau di bidang kimia ada spektrum kimia atom. bila diambil senyawa atau zat kimia dengan spektrum kimia tadi langsung ketauan struktur atomnya. Spektrum seperti itu yg dibutuhkan:
contoh : 100 : 10 x 10 = 2 x 5 x 2 x 5 faktor primanya : 2 dan 5
bila : 1841921854111823274 2236667995226521 5254869586358663 5525426264214121 4525462342246264 7
faktor prima berapa? dan apakah ini bilangan ini prima? sebagai acuan untuk mendapatkan bilangan prima 100 digit dengan memakai super komputer yg canggih dan algoritma yg canggih saat ini. dibutuhkan waktu 4 millyard tahun lamanya..( klo ndak percaya buktikan sendiri).
nah..dengan kerendahan hati saya telah membuat teori matematika dan algoritmanya tentang bilangan prima tentu waktu yg di butuhkan bukan tahun bukan bulan atau jam...untuk 200 digit dibutuhkan hanya beberapa menitsaja. sy memakai program VB6.0..
nah..temen2 sy sudah email ke claymath.org beberapa kali tapi ndak ada tanggapan. tolong dong temen2 kasih masukan buat sy...
thanks
chow bun how
Kutip dari: chow bun how pada Maret 11, 2008, 02:38:54 PM
nah..dengan kerendahan hati saya telah membuat teori matematika dan algoritmanya tentang bilangan prima tentu waktu yg di butuhkan bukan tahun bukan bulan atau jam...untuk 200 digit dibutuhkan hanya beberapa menit saja. sy memakai program VB6.0..
Wah.. boleh di share di sini dong! Saya jadi penasaran pengen tahu!
Saya sendiri pernah buat dengan menggunakan metode yang paling kuno yaitu metode
Sieve of Eratosthenes. Metode yang paling gampang tapi bukan yang paling tercepat. Pernah nyobain, dapetin bilangan prima yang ke 500.000 (lima ratus ribu) saja bisa sampe 4 jam. Tapi untuk bilangan prima yang ke puluhan ribu hanya bisa didapetkan dalam waktu kurang dari 10 detik. Bilangan prima yang kesejuta mungkin bisa sampe setengah harian (12 jam). Wah.. bisa-bisa komputer kantor meledak tuh, kepayahan.
Wah.. jadi penasaran pengen lihat program yang kamu buat yang katanya bisa sampe 200 digit. Jadi kira-kira bilangan prima itu bisa sepanjang ini yach ?
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
Ck.. ck..! Hebat juga yach...! (Bukan program untuk mengecheck bilangan prima kan?) Jadi nyari bilangan prima yang ke 2 x 10^200. Pengen dong source code-nya?!!! ^_^
Wah.....
ternyata banyak orang indonesia yang genius!!! ;)
Orang dengan IQ limit seperti saya jd merasa terbantu sekali.
ternyata sains itu menarik!!! ;D ;D ;D
public class prima{
public static void main (String[] args){
final int max = 1000000;
long akhir = max;
int prim[] = new int[max];
int no = 0;
for(int awal=2;awal<=akhir;awal++){
if(awal == 2){
prim[no] = awal;
no++;
}else{
boolean benar = true;
for(int i = 0; i< no; i++){
if(awal % prim == 0){
benar = false;
}
}
if(benar){
prim[no] = awal;
no++;
}
}
}
for(int i = 0; i< max; i++){
if(prim != 0){
System.out.println(prim);
}
}
}
}
Cara yang lazim untuk menemukan bilangan prima adalah dengan menyiapkan angka-angka dan memberi warna sesuai dengan kelipatan 2 hingga 9, nah, kotak yang tersisa (tidak berwarna) adalah merupakan bilangan prima.
Yang menarik adalah, aturan bagi bilangan prima adalah mudah, namun tidak ada rumus atau persamaan mudah untuk menentukan apakah sebuah bilangan â€"mungkin-- yang amat besar adalah merupakan bilangan prima atu bukan.
Sebagai informasi, bilangan prima terbesar yang pernah dihitung oleh manusia adalah 170.141.183.460.469.231.731.687.303.715.864.105.727, atau 2(127) -1, yang "ditemukan" oleh seorang matematikawan Inggris Arthur Lucas pada tahun 1877, wah sekarang udah ditemukan bilangan prima yang lain blum ya?***
Kutip dari: anca pada November 05, 2007, 03:40:23 PM
Algoritma Bilangan Prima
===========================
procedure BilPrima(num: Integer);
var i, max: integer;
begin
if num=0 then exit;
max := 2000;
for i:= 2 to max do
begin
if ((i=2) or (i=3) or (i=5) or (i=7)) then
begin
Tambahkan ke penyimpanan
num := num-1;
if num=0 then
exit;
end;
if ((i mod 2<>0) and (i mod 3 <> 0) and(i mod 5<>0) and (i mod 7<>0)) then
begin
Tambahkan ke peyimpanan
num := num-1;
if num=0 then
exit;
end;
end;
end;
Souce Lengkap dengan delphi
Berarti 33 ntar dimasukin ke dalam bilangan prima (pembagianya cuma sampe angka 7, padahal 11 x 3 = 33 (bukan prima)
Ada gak teknik menghitung bil prima dengan mudah??
Sebutkan bilangan prima ke-1000??
Kutip dari: Vinchemz pada Juli 28, 2008, 04:55:37 PM
Berarti 33 ntar dimasukin ke dalam bilangan prima (pembagianya cuma sampe angka 7, padahal 11 x 3 = 33 (bukan prima)
Sudah dijelaskan diatas, bahwa program yang dikutip itu ada kesalahan...
Kutip dari: Vinchemz pada Juli 28, 2008, 04:55:37 PM
Ada gak teknik menghitung bil prima dengan mudah??
Sebutkan bilangan prima ke-1000??
Listing program yang ditulis oleh
newkompi mungkin sudah memadai untuk menghitung bilangan prima yang ke-1000 (menggunakan metode
Sieve of Eratosthenes) . Jika Anda ingin programnya sekedar mengetahui bilangan prima yang ke(sekian). maka Anda tinggal membuat parameter pada class prima, taruhlah nama parameter itu, "primake". Kemudian mengganti :
final int max = 1000000menjadi :
final int max = primakeHasil akhir yang ditunjukkan oleh program itulah, bilangan prima yang dimaksud. Ada yang punya algoritma dan metode pemprograman yang lain gak?
btw...
chow bun how pernah bikin tuh algoritma yang katanya supercepat untuk mencari bilangan prima. Tapi pas diminta source codenya, gak nongol-nongol lagi..!!
Kutip dari: chow bun how pada Maret 11, 2008, 02:38:54 PM
nah..dengan kerendahan hati saya telah membuat teori matematika dan algoritmanya tentang bilangan prima tentu waktu yg di butuhkan bukan tahun bukan bulan atau jam...untuk 200 digit dibutuhkan hanya beberapa menitsaja. sy memakai program VB6.0..
nah..temen2 sy sudah email ke claymath.org beberapa kali tapi ndak ada tanggapan. tolong dong temen2 kasih masukan buat sy...
thanks
chow bun how
Saya harap benaran tuh....
gw juga make vb 6.0 bisa nyari 10.000 bilangan prima dlm 25 menit tu kira2 cepet ga ya ???
@suntzu
Kalo menurut pengalaman saya, waktu 25 menit untuk mencari 10.000 bilangan prima itu terlalu lama. Saya sendiri untuk mendapatkan bilangan prima ke 10.000 membutuhkan waktu kurang dari 10 detik. Saya mencoba menebak, mungkin algoritma program yang saudara gunakan terlalu banyak looping.
Kalau boleh, programnya aja di share supaya bisa ketahuan algoritmanya. Syukur-syukur ada yang tahu supaya bisa mengefisienkan algoritma tersebut. Pada postingan sebelumnya, sudah ada juga tuh yang nge-share script programnya.
Sieve Erastotenes dalam Excel berikut
dilampirkan, bisa untuk dilanjutkan sendiri...
Berikut yang tahap II, semoga bermanfaat baik dan silahkan yang mau mempelajari perumusannya. Saya lampirkan di sini dalam excel di zipped berikut contoh tampilannya, karena saya percaya penduduk2 forsa.
Wassalam
Basuki
Ternyata, pada file excelnya itu kolom L dari baris 6 yang berisi bilangan2 prima dari 2 sampai dengan 1699 (sebagai base) belum lengkap bilangan primanya (yaitu pada ratusan). Untuk memperbaiki, ganti dulu validasinya (Data/Validation). Memperbaiki tidak sekedar menyisipkan bilangan prima yang kurang tapi juga mengikutkan sebelah kanannya melalui Cut/Copy/Paste.
Salam sejahtera
Well,saya ikutan nimbrung ya... rumusan dari Al Fahrezy menarik,hanya saja ada perlu dikoreksi di kalimat ke 3 harus ditambahkan, kecuali 49, karena untuk kriteria 3 disebutkan jika jumlah nya bukan 3,6 atau 9, pastilah bilangan prima, untuk angka 49 hal ini tdk berlaku.
Moga jadi koreksi ya...
Thanks
Kutip dari: reborn pada November 30, 2006, 09:27:52 AM
Salam kenal al fahrezy :)
wew... 1st post di forum math yahh... pasti pakar math neh ;)
1. Yup, karena genap bisa dibagi 2
2. Yup, karena rangkap bisa dibagi 11
3. Yup, karena kalo sama dgn 3,6,9 bisa dibagi 3
tapi masa hanya sampe di bawah 100? mencari bilangan prima terbesar lagi trend lho :P
Bilangan prima antara 99460500 dan 99460660 dengan
Erastotenes III saya sbb :
99460511, 99460513, 99460531, 99460549, 99460553, 99460583, 99460589,
99460609, 99460637, 99460657
(http://<http://masraharja.multiply.com/photos/album/5/prima#1"><img%20border="0"%20src="http://images.masraharja.multiply.com/image/2/photos/5/500x500/1/ErastotenesIII.GIF?et=IGkyC00dev2B%2CGSrWLBG0Q&nmid=120237985)
iya gw stl browsing br tau kl itu tu lm tp bkn gr2 coding tp gara2 kompie gw lemot btw waktu itu gw pnah nemu artikel yang katanya bisa nemu banyak bilangan dlm waktu singkat
[pranala luar disembunyikan, sila masuk atau daftar.] tp ga tw lbh cpt dr mr Chow ap ngak ??
Itu Link yang bagus untuk inspirasi, thank atas infonya. Erastotenes III dari saya terlalu besar volumnya, jadi hanya tampilannya yang bisa dilampirkan.
Bilangan2 prima terbesar yang ditemukan terutama pada era komputer adalah mersene prime, kemarin 23 Agustus 2008,yaitu (2^43112609)-1 terdiri dari 12978189 digit:
[pranala luar disembunyikan, sila masuk atau daftar.]Karena komputer saya hanya amatiran, maka berat sekali untuk men-generate bilangan ini, tapi untuk bilangan2 prima sebelumnya masih mampu seperti :
(tahun 1952)
M2281=(2^2281)-1 = 446087557183758429571151706402101809886208632412859901111991219963404685792820473369112545269003989026153245931124316702395758705693679364790903497461147071065254193353938124978226307947312410798874869040070279328428810311754844108094878252494866760969586998128982645877596028979171536962503068429617331702184750324583009171832104916050157628886606372145501702225925125224076829605427173573964812995250569412480720738476855293681666712844831190877620606786663862190240118570736831901886479225810414714078935386562497968178729127629594924411960961386713946279899275006954917139758796061223803393537381034666494402951052059047968693255388647930440925104186817009640171764133172418132836351 (687 digit)
(tahun 1957)
M3217=(2^3217)-1 =
259117086013202627776246767922441530941818887553125427303974923161874019266586362086201209516800483406550695241733194177441689509238807017410377709597512042313066624082916353517952311186154862265604547691127595848775610568757931191017711408826252153849035830401185072116424747461823031471398340229288074545677907941037288235820705892351068433882986888616658650280927692080339605869308790500409503709875902119018371991620994002568935113136548829739112656797303241986517250116412703509705427773477972349821676443446668383119322540099648994051790241624056519054483690809616061625743042361721863339415852426431208737266591962061753535748892894599629195183082621860853400937932839420261866586142503251450773096274235376822938649407127700846077124211823080804139298087057504713825264571448379371125032081826126566649084251699453951887789613650248405739378594599444335231188280123660406262468609212150349937584782292237144339628858485938215738821232393687046160677362909315071 (969 digit)
(tahun 1961)
M4423=(2^4423)-1 =
285542542228279613901563566102164008326164238644702889199247456602284400390600653875954571505539843239754513915896150297878399377056071435169747221107988791198200988477531339214282772016059009904586686254989084815735422480409022344297588352526004383890632616124076317387416881148592486188361873904175783145696016919574390765598280188599035578448591077683677175520434074287726578006266759615970759521327828555662781678385691581844436444812511562428136742490459363212810180276096088111401003377570363545725120924073646921576797146199387619296560302680261790118132925012323046444438622308877924609373773012481681672424493674474488537770155783006880852648161513067144814790288366664062257274665275787127374649231096375001170901890786263324619578795731425693805073056119677580338084333381987500902968831935913095269821311141322393356490178488728982288156282600813831296143663845945431144043753821542871277745606447858564159213328443580206422714694913091762716447041689678070096773590429808909616750452927258000843500344831628297089902728649981994387647234574276263729694848304750917174186181130688518792748622612293341368928056634384466646326572476167275660839105650528975713899320211121495795311427946254553305387067821067601768750977866100460014602138408448021225053689054793742003095722096732954750721718115531871310231057902608580607(1332 digit)
(tahun 1971)
M19937=(2^19937)-1=
43154247973881626480552355163379198390539350432267115051652505414033306801376580911304513629318584665545269938257648835317902217334584413909528269154609168019007875343741396296801920114486480902661414318443276980300066728104984095451588176077132969843762134621790396391341285205627619600513106646376648615994236675486537480241964350295935168662363909047948347692313978301377820785712419054474332844529183172973242310888265081321626469451077707812282829444775022680488057820028764659399164766265200900561495800344054353690389862894061792872011120833614808447482913547328367277879565648307846909116945866230169702401260240187028746650033445774570315431292996025187780790119375902863171084149642473378986267503308961374905766340905289572290016038000571630875191373979555047468154333253474991046248132504516341796551470575481459200859472614836213875557116864445789750886277996487304308450484223420629266518556024339339190844368921018424844677042727664601852914925277280922697538426770257333928954401205465895610347658855386633902546289962132643282425748035786233580608154696546932563833327670769899439774888526687278527451002963059146963875715425735534475979734463100678367393327402149930968778296741391514599602374213629898720611431410402147238998090962818915890645693934483330994169632295877995848993366747014871763494805549996163051541225403465297007721146231355704081493098663065733677191172853987095748167816256084212823380168625334586431254034670806135273543270714478876861861983320777280644806691125713197262581763151313596429547763576367837019349835178462144294960757190918054625114143666384189433852576452289347652454631535740468786228945885654608562058042468987372436921445092315377698407168198376538237748614196207041548106379365123192817999006621766467167113471632715481795877005382694393400403061700457691135349187874888923429349340145170571716181125795888889277495426977149914549623916394014822985025331651511431278802009056808456506818877266609831636883884905621822262933986548645669080672191704740408891349835685662428063231198520436826329415290752972798343429446509992206368781367154091702655772727391329424277529349082600585884766523150957417077831910016168475685658673192860882070179760307269849987354836042371734660257694347235506301744118874141292438958141549100609752216882230887611431996472330842380137110927449483557815037586849644585749917772869926744218369621137675101083278543794081749094091043084096774144708436324279476892056200427227961638669149805489831121244676399931955371484012886360748706479568669048574782855217054740113945929622177502575565811067452201448981991968635965361551681273982740760138899638820318776303668762730157584640042798880691862640268612686180883874939573818125022279689930267446255773959542469831637863000171279227151406034129902181570659650532600775823677398182129087394449859182749999007223592423334567850671186568839186747704960016277540625331440619019129983789914712515365200336057993508601678807687568562377857095255541304902927192220184172502357124449911870210642694565061384919373474324503966267799038402386781686809962015879090586549423504699190743519551043722544515740967829084336025938225780730880273855261551972044075620326780624448803490998232161231687794715613405793249545509528052518010123087258778974115817048245588971438596754408081313438375502988726739523375296641615501406091607983229239827240614783252892479716519936989519187808681221191641747710902480633491091704827441228281186632445907145787138351234842261380074621914004818152386666043133344875067903582838283562688083236575482068479639546383819532174522502682372441363275765875609119783653298312066708217149316773564340379289724393986744139891855416612295739356668612658271234696438377122838998040199739078061443675415671078463404673702403777653478173367084844734702056866636158138003692253382209909466469591930161626097920508742175670306505139542860750806159835357541032147095084278461056701367739794932024202998707731017692582046210702212514120429322530431789616267047776115123597935404147084870985465426502772057300900333847905334250604119503030001704002887892941404603345869926367501355094942750552591581639980523190679610784993580896683299297681262442314008657033421868094551740506448829039207316711307695131892296593509018623094810557519560305240787163809219164433754514863301000915916985856242176563624771328981678548246297376249530251360363412768366456175077031977457534912806433176539995994343308118470147158712816149394421276614228262909950055746981053206610001560295784656616193252269412026831159508949671513845195883217147982748879261851417819979034417285598607727220866677680426090308754823803345446566305619241308374452754668143015487710877728011086004325892262259413968285283497045571062757701421761565262725153407407625405149931989494459106414660534305378576709862520049864880961144869258603473714363659194013962706366851389299692869491805172556818508298824954954815796063169517658741420159798754273428026723452481263569157307213153739781041627653715078598504154797287663122946711348158529418816432825044466692781137474494898385064375787507376496345148625306383391555145690087891955315994462944493235248817599907119135755933382121706191477185054936632211157222920331148502487563303118018805685073569841580518118710778653953571296014372940865270407021924383167290323231567912289419486240594039074452321678019381871219092155460768444573578559513613304242206151356457513937270939009707237827101245853837678338161023397586854894230696091540249987907453461311923963852950754758058205625956600817743007191746812655955021747670922460866747744520875607859062334750627098328593480067789456169602494392813763495657599847485773553990957557313200809040830036446492219409934096948730547494301216165686750735749555882340303989874672975455060957736921559195480815514035915707129930057027117286252843197413312307617886797506784260195436760305990340708481464607278955495487742140753570621217198252192978869786916734625618430175454903864111585429504569920905636741539030968041471( 6002 digit)
wah.... bahasannya menarik tuh jujur aja gw lom ngerti tentang 7 masalah terbesar matematika pie gw suka pelajaran matematika..!
tolong dong gw anggota baru dan masih duduk di kelas SMA dan belum ada pengalaman membahas bilangan prima lebih dari 10000-<<<<<<.......
kalo ada cara yang mudah untuk membahas soal UAN tolong kirim ke e-mail gw
makasih atas bantuannya..!
misterius.... gagagaggag itulah yang bs menggambarkan ttg bil. prima, Iq rendah g paham pemrograman masih butuh banyak pencerahan... thank buwat semua postingny cukup membantu siswa ky aq..... ;D ;D ;D ;D
gud job bro...
Gimana kalau gini buat ngecek bilangan prima, pake FREE PASCAL...
saya sudah banyak lupa syntaxnya,mohon dikoreksi:
uses crt;
var a,b,c:integer;
begin
clrscr;
writeln ('Masukkan bilangan anda...');readln(a);
for b:1 to a do
if a mod b=0 then
c:=c+1 else c:=c;
clrscr;
if c>2 then writeln ('Bukan bilangan prima') else
if c<=2 then writeln ('Prima');
readln;
end.
Ada yang udah coba pake little Fermat Theorem belum?
Banyak loopnya juga sih.
@biobio
uses crt;
var a,b,c:integer;
begin
clrscr;
writeln ('Masukkan bilangan anda...');readln(a);
for b:1 to a do
if a mod b=0 then <Apakah a habis dibagi b?>
c:=c+1 else c:=c; <Jika ya maka hitung (counter), jika tidak maka lewat>
clrscr;
if c>2 then writeln ('Bukan bilangan prima'); <Jika counter (jml bil pembagi habis dari a lebih dari 2 maka a bukan bil prima>
if c<=2 then writeln ('Prima'); <Jika counter (jml bil pembagi habis dari a kurang dari atau sama dengan 2 maka a bil prima>
readln;
end.
Secara logika sudah benar, hanya kurang efsien, yaitu sebenarnya kita tidak perlu ngecek semua pembagi dari 1 s.d. a, yakni cukup dengan 1 s.d. floor(sqrt(a)) <pembulatan ke bawah akar dari a>.
@mtk kerajaan mataram
mnurutku script tu ga efisien dan hasilny jga pasti lama...
ada ide lg?
btw, koq PM-ku ga dblz?
Kutip dari: Mtk Kerajaan Mataram pada Mei 06, 2009, 02:28:09 AM
yaitu sebenarnya kita tidak perlu ngecek semua pembagi dari 1 s.d. a, yakni cukup dengan 1 s.d. floor(sqrt(a)) <pembulatan ke bawah akar dari a>.
hmmm, ga ngerti gw... floor itu apa si?
Kutip dari: biobio pada Mei 07, 2009, 01:11:26 PM
hmmm, ga ngerti gw... floor itu apa si?
Sudah disimpulkan :
Kutip dari: Mtk Kerajaan Mataram pada Mei 06, 2009, 02:28:09 AM
floor(sqrt(a)) <pembulatan ke bawah akar dari a>.
Jadi kalo kita punya angka 12.3 (dua belas koma tiga)
terus angka tersebut di-floor-kan maka hasilnya = 12
Jika :
x = 45.4
y=floor(x)
maka y = 45
CMIIW...!!
Kutip dari: nash pada Mei 06, 2009, 05:43:36 AM
@mtk kerajaan mataram
mnurutku script tu ga efisien dan hasilny jga pasti lama...
ada ide lg?
Dari 1 s.d. floor(sqrt(a)), pilihlah hanya mengecek bilangan2 prima saja (jadi bilangan2 prima yang telah diperoleh diidentifikasi), ini akan sangat menghemat. Dan tentu saja inipun masih bukan untuk bilangan2 prima berdigit raksasa.
Waaaaaa..........
bahasa pascal, q punya pengalaman buruk ma pascal,
tapi salut buat kerajaan mataram..........terus bersemangat mengembangkan matematika..........
Dulu pernah nyobain pake bahasa C dengan menggunakan metoda Sieve of Eratosthenes. Prinsipnya adalah : mencari suatu bilangan yang hanya bisa dibagi oleh dirinya sendiri dan satu, kemudian mencoret dari daftar bilangan lain yang merupakan kelipatan bilangan prima yang ditemukan. Simple banget sih, tapi lumayanlah...
package percobaan;
public class Cariprima {
/**
* Program ini digunakan untuk mencari bilangan prima
* sebanyak yang diminta.
* Date : 18 Maret 2008 – Insan Sains
*/
public static void main(String[] args) {
/* jmlbilprima = Jumlah bilangan prima pertama yang akan dicari
* jmlketemu = jumlah bilangan prima yang saat ini ditemukan
* idx = bilangan yang saat ini sedang dicheck
* isprima = flag yang menunjukkan bahwa bilangan yang dicheck adalah bilangan prima
* prima[] = array yang merupakan kumpulan bilangan prima yang dicari.
*/
int jmlbilprima = 10000;
int jmlketemu = 0;
boolean isprima;
int prima[] = new int[jmlbilprima];
/*
* 1 bukan termasuk bilangan prima, jadi lewat saja
* Untuk memudahkan, bilangan prima yang pertama didefinisikan dulu
* Yaitu angka 2.
*/
int idx = 2;
prima[0] = 2;
/* Looping sampai ditemukan bilangan prima sejumlah yang diinginkan
*/
for (jmlketemu = 1; jmlketemu < jmlbilprima; jmlketemu++) {
isprima = false;
// Lakukan sampai ketemu bilangan prima berikutnya.
while (!isprima) {
// Lanjut ke bilangan yang akan diperiksa
idx++;
/* Bagi bilangan yang dicheck dengan bilangan prima yang sudah ketemu
* Periksa sisa baginya
* Bila salah satu hasil (sisa bagi) = kosong, berarti bukan prima
* Maka lanjut ke bilangan yagn dicheck berikutnya
* Bila SEMUA hasil (sisa bagi) = bersisa, berarti bilangan prima
* Maka masukkan bilangan ini sbg bilangan prima.
*/
for (int x = 0; x <= jmlketemu-1; x++) {
if ((idx % prima[ x ]) != 0) isprima = true;
else {
isprima = false;
break;
}
}
}
// Masukkan hasil bilangan prima yg ketemu ke look up table
prima[jmlketemu] = idx;
System.out.println(jmlketemu + ". " + idx);
}
// Perlihatkan hasilnya dilayar
for (int x = 1; x <= jmlbilprima; x++) {
System.out.println(x + ". " + prima[x-1]);
}
}
}
Sumber :
[pranala luar disembunyikan, sila masuk atau daftar.]
berhubung di kompie ku ga da compiler bhs C, ada yg mau bantu ngubah insan sains project di atas ke bhs vb?
@insan sains
Ini program mendaftar bilangan prima yaa?
Saya kok masih gamang dengan maksud dari :
for (int x = 0; x <= jmlketemu-1; x++)
{if ((idx % prima[ x ]) != 0) isprima = true;
else {isprima = false;break;}}
<'if; tsb di dalam 'for', jadi pengujian ikut berulang (bisa berganti-ganti hasil isprima-nya selama itu >, kok mulai dari 0 yaa pembaginya?
@Mtk Kerajaan Mataram
Ya.. program yang saya bikin untuk mendaftar bilangan prima.
Jadi kalo di program tersebut diisikan
int jmlbilprima = 10000;Maka komputer akan mendaftar dan menampilkan bilangan prima pertama hingga ke 10 ribu. Jadi kalo mau mendaftar dan menampilkan bilangan prima pertama hingga ke 1 juta. Tinggal mengganti jmlbilprima saja.
Saya kutipkan lagi blok program yang ditanyakan :
Kutip dari: insan sains pada Mei 12, 2009, 04:52:42 PM
for (int x = 0; x <= jmlketemu-1; x++) {
if ((idx % prima[ x ]) != 0) isprima = true;
else {
isprima = false;
break;
}
}
Script program diatas untuk melakukan pengujian terhadap bilangan yang sedang diperiksa.
Sebelumnya perlu diketahui bahwa bilangan prima yang telah diuji akan dimasukkan pada sebuah array yang bernama prima[]. Yang sebelumnya telah disediakan bahwa array itu akan sebanyak jumlah bilangan prima yang dimasukkan.
int prima[] = new int[jmlbilprima];Misal kita telah mendapatkan 9999 bilangan prima. Maka bilangan prima yang ke 10.000 tidak harus diuji dari angka awal lagi, melainkan mengujinya dengan 9999 bilangan prima yang sudah ditemukan. Sebagaimana metode
Sieve of Eratosthenes : "Mencari suatu bilangan yang hanya bisa dibagi oleh dirinya sendiri dan satu, kemudian mencoret dari daftar bilangan lain yang merupakan kelipatan bilangan prima yang ditemukan"
for (int x = 0; x <= jmlketemu-1; x++) {Nah 0 yang dimaksud, dalam script program diatas bukan melakukan pengujian dengan 0. Melainkan melakukan pengujian dengan bilangan prima yang telah ditemukan yang berada pada array ke-0 (array pertama, dalam hal ini program sudah langsung mendefinisi bahwa bilangan prima pada array ke-0 adalah angka 2)
prima[0] = 2;Pengujian itu sendiri dilakukan pada script berikut :
if ((idx % prima[ x ]) != 0) isprima = true;Si
idx itu sendiri akan terus bertambah, sampai bilangan prima yang ke sekian (sbgmn yang diinginkan pada
jmlbilprima) sudah ditemukan.
Okay trims,
maksudnya anu yaa, jika idx sampai ke bilangan prima, maka akan diperoleh :
isprima=true
isprima=true
isprima=true
.....
isprima=true
sampai x = jmlketemu-1
lalu ganti idx.
Dan jika idx bukan bilangan prima maka
isprima=true
isprima=true
isprima=true
.....
isprima=false
break
lalu ganti idx.
Kutip dari: Mtk Kerajaan Mataram pada Mei 16, 2009, 04:39:04 PM
Okay trims,
maksudnya anu yaa,
Untung ada lanjutannya.... kekekeke ;D
Yups tepat sekali
Btw.. saya pengen nyari pake metode lain yang lebih cepet. Bisa di definisikan gak formulanya? Thanks
Jadi Inget kuliah sejarah Matematika
aku juga mau jawab pake sievve de erastostenes (kayaknya salah deh ejaanya)
Tapi udah dijawab ama wildan
cara itu udah masuk ke MATLAB 7.2 (maungkin versi sebelumanya ada)
caranya ketik prome(1000000000)
terserah bilangan berapapun ntar akan muncul semua bilangn prima yang kurang dari bil yang kamu mau, proses kurang dari 4 menit asalakan tidak lebih dari 16juta digit, tergantung RAM juga dinx
Himpunan bilangan asli
Himpunan bilangan asli adalah himpunan bilangan yang anggota-anggotanya merupakan bilangan bulat positif.
N = {1,2,3,4,5,6,......}
Himpunan bilangan prima
Himpunan bilangan prima adalah himpunan bilangan-bilangan asli yang hanya dapat dibagi dirinya sendiri dan satu, kecuali angka 1.
P = {2,3,5,7,11,13,....}
Himpunan bilangan cacah
Himpunan bilangan cacah adalah himpunan bilangan yang anggota-anggotanya merupakan bilangan bulat positif digabung dengan nol.
C = {0,1,2,3,4,5,6,....}
Himpunan bilangan bulat
Himpunan bilangan bulat adalah himpunan bilangan yang anggota-anggotanya seluruh bilangan bulat, baik negatif, nol, dan positif.
B = {...,-3,-2,-1,0,1,2,3,...}
Himpunan bilangan rasional
Himpunan bilangan rasional adalah himpunan bilangan yang anggota-anggonya merupakan bilangan yang dapat dinyatakan sebagai:
p/q dimana p,q Î bulat dan q ¹ 0 atau dapat dinyatakan sebagai suatu desimal berulang.
contoh: 0,-2, 2/7, 5, 2/11, dan lain lain
Himpunan bilangan irasional
Himpunan bilangan irasional adalah himpunan bilangan yang anggota-anggotanya tidak dapat dinyatakan sebagai sebagai p/q atau tidak dapat dinyatakan sebagai suatu desimal berulang.
contoh: log 2, e, Ö7
Himpunan bilangan riil
Himpunan bilangan riil adalah himpunan yang anggota-anggotanya merupakan gabungan dari himpunan bilangan rasional dan irasional.
contoh: log 10, 5/8, -3, 0, 3
Himpunan bilangan imajiner
Himpunan bilangan imajiner adalah himpunan bilangan yang anggota-anggotanya merupakan i (satuan imajiner) dimana i merupakan lambang bilangan baru yang bersifat i² = -1
contoh: i, 4i, 5i
Himpunan bilangan kompleks
Himpunan bilangan kompleks adalah himpunan bilangan yang anggota-anggotanya (a + bi) dimana a, b Î R, i² = -1, dengan a bagian riil dan b bagian imajiner.
contoh: 2-3i, 8+2
Yuk kembali ke topik, kalau dalam topik "probable prime", kita pertama membahas a_PRP untuk menguji primalitas berdasar teorema fermat dengan keterbatasannya.
Ini ada yang namanya Strong Probable Prime, yang juga menguji primalitas secara lebih kuat, dalam kesendirian memang masih belum bisa menyeluruh, tapi kalau digabung, misalnya suatu bilangan kurang dari 2.000.0000 dan termasuk 2_SPRP dan 3_SPRP, maka bilangan itu prima, dan masih banyak contoh lain.
Ujinya adalah sebagai berikut, jika suatu bilangan berbentuk
, dimana
ganjil. Bilangan
merupakan
SPRP jika memenuhi salah satu berikut :
(i)
(ii)
Contoh :
(1) 7 termasuk 2_SPRP, karena
dan
(2) 15 tidak termasuk 2_SPRP karena
(i)
tidak berbentuk
(ii) karena s=1, maka r hanya 0 saja, dan
juga tidak berbentuk
,
Karena tidak memenuhi kedua-dua kriteria maka 15 bukan 2_SPRP.
Code program untuk tidak diobral, biasanya terdapat di jurnal matematika, saya berencana untuk membuatnya. Sedangkan bukti untuk uji ini nanti kita coba di thread 'prpbable prime' : http://www.forumsains.com/matematika/probable-prime/
sprp itu apa???
@Nabih
Silahkan baca pertama kali ceritanya di http://www.forumsains.com/matematika/probable-prime/
newbie lagi iseng ngangkat thread lama... :)
#include <iostream.h>
#include <conio.h>
#include <math.h>
main()
{
long bil, prima, a, b, c, d;
#define true 1
#define false 0
clrscr();
cout << "PROGRAM BILANGAN PRIMA\n";
cout << "==================\n\n";
cout << "Masukkan banyak baris angka: ";
cin >> bil;
cout << "Hasil :\n";
b = 1;
a = 0;
while (a < bil) {
prima = false;
while (!prima) {
b++;
d = 0;
for (c = 1; c <= sqrt(b); c++) {
if ((b%c) == 0)
d++;
}
if (d == 1)
prima = true;
}
if (prima == true) {
cout << b;
cout << " ";
a++;
}
}
getch();
}
coba ini bos, saya buat pakai vb, component disesuaikan selera ya. ini modifikasi dari sintak di atas yang pakai pascal, mohon revisinya. kalao samapi 200 sih masih aman, di atas itu blm dipastikan
Dim i, bil1, bil2 As Integer
bil1 = bilangan1.Text
bil2 = bilangan2.Text
hasil.Text = ""
For i = bil1 To bil2 Step 1
If i = 2 Or i = 3 Or i = 5 Or i = 7 Then
hasil.Text = hasil.Text & i & vbCrLf
ElseIf i Mod 2 <> 0 And i Mod 3 <> 0 And i Mod 5 <> 0 And i Mod 7 <> 0 And i Mod 11 <> 0 And i Mod 13 <> 0 Then
hasil.Text = hasil.Text & i & vbCrLf
End If
Next i
@Ridho R
Saya kira code anda belum merupakan modifikasi dari code-nya @anter.
Dalam code anda diberi persyaratan tidak habis dibagi bilangan prima sampai 13, jadi kira-kira bilangan prima yang bisa dicek merentang dari 1 s.d. 13
2=169. Yaa mungkin sekali s.d. kurang dari 200.
Sedangkan pada code @anter, diberikan :
for (c = 1; c <= sqrt(b); c++) {
if ((b%c) == 0)
d++;
yang berarti untuk mendaftar bilangan prima dari suatu rentang yang diinginkan. Kalau yang dinginkan sampai bilangan 300 misalnya, maka dibuat persyaratan "jika banyaknya habis dibagi bilangan 1 s.d. int(
) sama dengan 1, maka prima".
Bedanya, pada @anter bisa merambah sesuai yang diinginkan walaupun nanti semakin lama waktu yang dibutuhkan. Tapi pada code anda hanya sampai pada kurang dari bilangan 200.
misi para Om sepuh ane mo ikutan n coba posting ( maaf masih nubi )
coba pake ini ya , to dosen2 ane minta revisi nya..
kalo ane cek ini aman di semua angka
/* Formatted on 2010/11/03 09:21 (Formatter Plus v4.8.8) */
CREATE OR REPLACE FUNCTION kon.coba_prima (pivalue IN NUMBER)
RETURN VARCHAR
IS
vreturn VARCHAR (15) := 'PRIMA';
BEGIN
FOR i IN 2 .. 9
LOOP
IF i <> pivalue AND MOD (pivalue, i) = 0
THEN
vreturn := 'bukan prima';
EXIT;
ELSE
vreturn := 'prima';
END IF;
END LOOP;
RETURN vreturn;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
-- Consider logging the error and then re-raise
RAISE;
END coba_prima;
/
coba di cek jawabana n logic nya
regard's
karunkberas
@karunkberas
pake bahasa apa si tu?
kan udah dibahas di awal2, pengecekan tidak habis dibagi 2..9 tidak valid..
(hanya valid untuk angka 1..99)
pengecekan minimal harus sampai
dibulatkan kebawah..
@adisae :
Ane pake function di oracle pak dosen, coba ane cek dulu ke postingan awal
kali aza menemukan ilham, coz koment bapak kurang jelas :D
maksudnya untuk menentukan bilangan
itu prima, harus dibuktikan bahwa
tidak habis dibagi 2..
coba pak dosen kalo ada punya tool Toad ato SQL dev ato yg lain nya
runing query ini,
ntar bakal keliatan hasil nya :D
* maaf ane masih perlu banyak belajar dari master2 di forum ini
Regard's
karunkberas
silahkan baca posting mtk kerajaan sebelum posting code anda di atas..dan silahkan untuk dipahami..
terus masalah kodenya, silahkan masukkan angka 121 atau 169 pada kode tersebut..pasti hasilnya tidak valid..
ok siap pak..:D
ane pelajari lagi..
barusan ane coba masuka angka 121 dan 169 ke funktion yg ane bikin,
hasil nya itu adalah bilangan prima, bener gak ya...?
terimakasih tanggapan& ilmu nya pak dosen
gubrak..
121 = 11 x 11
169 = 13 x 13
y jelas bukan bilangan prima..
Kutip dari: karunkberas pada November 03, 2010, 02:49:56 PM
ok siap pak..:D
ane pelajari lagi..
barusan ane coba masuka angka 121 dan 169 ke funktion yg ane bikin,
hasil nya itu adalah bilangan prima, bener gak ya...?
terimakasih tanggapan& ilmu nya pak dosen
Berarti program anda salah.
wow... kalau fungsi utama cuma pakai logika "if" ya ndak bakal ketemu...
kombinasi sma perulangan mungkin membantu...
Kutip dari: nazila pada April 05, 2011, 11:58:22 PM
wow... kalau fungsi utama cuma pakai logika "if" ya ndak bakal ketemu...
kombinasi sma perulangan mungkin membantu...
benar, sepeti yang aku pernah tulis dulu
Kutip dari: biobio pada April 27, 2009, 05:44:54 PM
Gimana kalau gini buat ngecek bilangan prima, pake FREE PASCAL...
saya sudah banyak lupa syntaxnya,mohon dikoreksi:
uses crt;
var a,b,c:integer;
begin
clrscr;
writeln ('Masukkan bilangan anda...');readln(a);
for b:1 to a do
if a mod b=0 then
c:=c+1 else c:=c;
clrscr;
if c>2 then writeln ('Bukan bilangan prima') else
if c<=2 then writeln ('Prima');
readln;
end.
Selama ini hanya di bahasa Pascal saja, tidak tertarik di bahasa lain kah? Misalnya java atau c++ atau c# atau f# atau CLISP?
Hahaha...
Oya, sebenarnya primality test sudah banyak caranya...
Coba cek ini:
[pranala luar disembunyikan, sila masuk atau daftar.]
yang saya masih bingung itu adalah untuk apa sih gunanya bilangan prima ini??
Dan kenapa bilangan negatif misalkan -2, -3, -5, dst bukan merupakan bilangan prima, padahal kan bilangan prima sendiri adalah bilangan yang hanya memiliki faktor 1 dan bilangan itu sendiri?? ???
coba deh pake script ini... aku udah buktiin cuman tolong dikoreksi kalo misal ada dari logika aku yang salah... thanks
Dim obj As Integer
Private Sub Command1_Click()
Me.Text2.Text = ""
obj = 0
If Me.Text1.Text <> "" Or Me.Text1.Text <> 0 Then
For i = 1 To Val(Me.Text1.Text)
If Me.Text1.Text Mod i = 0 Then
obj = obj + 1
Else
obj = obj
End If
Next
If obj > 2 Then Text2.Text = "BUKAN" Else Text2.Text = "PRIMA"
End If
End Sub
Kutip dari: adi_ak46 pada Juli 03, 2011, 12:25:30 AM
yang saya masih bingung itu adalah untuk apa sih gunanya bilangan prima ini??
Dan kenapa bilangan negatif misalkan -2, -3, -5, dst bukan merupakan bilangan prima, padahal kan bilangan prima sendiri adalah bilangan yang hanya memiliki faktor 1 dan bilangan itu sendiri?? ???
aplikasinya antara lain untuk public key cryptography
[pranala luar disembunyikan, sila masuk atau daftar.]bilangan negatif tidak dimasukkan by definition, karena tidak termasuk bilangan asli.
[pranala luar disembunyikan, sila masuk atau daftar.]
Friend Function BilPrima(MaxNomor As Long) As String
Dim Nomor As Double, Test As Long, Maxtest As Long
Dim Jml As Long, Persen As Integer
Dim StatusPrima As Boolean
BilPrima = ""
Jml = 0
Persen = 0
Label3.Caption = ""
Label2.Caption = ""
For Nomor = 1 To MaxNomor Step 1
DoEvents
Persen = (Nomor / MaxNomor) * 100
Label2.Caption = "Silahkan Tunggu " & CStr(Persen) & "%...."
StatusPrima = True
Maxtest = Nomor / 2
If (Nomor <> 2) And ((Nomor Mod 2) = 0) Then
StatusPrima = False
End If
Test = 3
While Test <= Maxtest And StatusPrima = True
If Nomor Mod Test = 0 Then
StatusPrima = False
End If
Test = Test + 2
Wend
If StatusPrima = True Then
If Nomor <> 1 Then
Jml = Jml + 1
BilPrima = BilPrima + CStr(Nomor) + " "
Text1.Text = BilPrima
Label3.Caption = "Jumlah bil Prima : " & CStr(Jml)
End If
End If
Next
'Label3.Caption = "Jumlah bil Prima : " & CStr(Jml)
Label2.Caption = ""
End Function
utk periksa bil prima dgn mencoba script dari rekan rossaarie diatas.....hasilnya seperti dalam lampiran
Maaf yang kemaren itu masih sangat berantakan. Tapi sudah aku coba rapikan di sini
hahaha akhirnya setelah 4 jam berfikir akhirnya ketemu juga ini dari angka terkecil sampai yang paling besar bs tinggal di ganti tipe bilangannya aja.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a=2,bil,hasil,cek=0;
printf("masukan bilangan yang ingin di cek : ");scanf("%d",&bil);
do
{
hasil=bil%a;
printf("\n %d modulus %d adalah %d",bil,a,hasil);
if(hasil==0)
{
cek=cek+1;
}
else
{
cek=cek+0;
}
a++;
}while(a<=bil-1);
printf("\njumlah angka 0 adalah %d \n",cek);
if(bil>2)
{
if(cek==0)
{
printf("prima");
}
else
{
printf("bukan prima");
}
}
else if(bil<=2)
{
if(bil==2)
{
printf("prima");
}
else if((bil>0) && (bil<2))
{
printf("bukan prima");
}
else
{
printf("negatif");
}
}
return 0;
}
Kutip dari: adi_ak46 pada Juli 03, 2011, 12:25:30 AM
Dan kenapa bilangan negatif misalkan -2, -3, -5, dst bukan merupakan bilangan prima, padahal kan bilangan prima sendiri adalah bilangan yang hanya memiliki faktor 1 dan bilangan itu sendiri?? ???
Kita ambil -2 sebagai contoh. Faktor dari -2 tidak hanya 1 dan -2, tetapi juga -1 dan 2. Jadi, faktor dari -2 tidak hanya 1 dan dirinya sendiri. Hal yang sama juga berlaku pada bilangan prima lainnya.