[問題] 新手again為什麼運算到太大就失敗,我有用unsigned int了= =

看板C_and_CPP作者 (fireslayer)時間15年前 (2010/03/05 19:13), 編輯推噓6(607)
留言13則, 10人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 比較小的數ok,大一點printf出來就不正確 希望得到的正確結果: 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Microsoft Visual C++ 2008 Express 有問題的code: (請善用置底文標色功能) #include "stdafx.h" #include "stdlib.h" int _tmain(int argc, _TCHAR* argv[]) { unsigned int primenumber = 1; unsigned int test = 2; unsigned int number = 2; while(number != 0) { while(number % test != 0&&number >= test) test = test + 1; if(test == number) { primenumber = primenumber * number; printf("質數連乘積到%u ", number); printf("新的質數對為:%u %u\n",primenumber-1,primenumber+1); } test = 2; number = number + 1; } system("pause"); return 0; } 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.40.80

03/05 19:39, , 1F
你都知道數字太大了...
03/05 19:39, 1F

03/05 19:51, , 2F
可是unsigned不是沒有限制嗎?
03/05 19:51, 2F

03/05 19:52, , 3F
而且網路上有用家庭電腦跑出大質數的怎麼找的
03/05 19:52, 3F

03/05 20:02, , 4F
u_int 0~4G
03/05 20:02, 4F

03/05 20:06, , 5F
幾乎所有跟電腦有關係的事情都是有限的 XD
03/05 20:06, 5F

03/05 20:06, , 6F
你要很大的質數 可以google「大數運算」相關資訊
03/05 20:06, 6F

03/05 21:58, , 7F
unsigned != unlimited
03/05 21:58, 7F

03/05 22:17, , 8F
你需要字典...
03/05 22:17, 8F

03/05 22:18, , 9F
XD
03/05 22:18, 9F

03/05 23:12, , 10F
電腦儲存就是有限的, 建議你去把各種不同變數型態(包含
03/05 23:12, 10F

03/05 23:13, , 11F
浮點數)所能表達的範圍去查清楚, 初學書幾乎一定會教:)
03/05 23:13, 11F

03/06 22:55, , 12F
dendrobium XDDD
03/06 22:55, 12F

03/07 04:33, , 13F
推文好好笑
03/07 04:33, 13F
文章代碼(AID): #1BaET0qH (C_and_CPP)