[問題] 找小於輸入值的最大質數的語法
我是使用Dev C++而且是初學者..
最近寫到這個題目..
想了老半天想不出來...後來看到解答的Code..我有些疑問..
他的解答如下..
#include <iostream>
#include <cstdlib>
using namespace std;
int main(void)
{
int i,n=45;
bool flag=false;
int prime=n-1;
while(!flag)
{
for(i=2;i<prime;i++)
if(prime%i==0) // not a prime
{
prime--;
continue;
}
flag=true;
}
cout << "小於" << n << "的最大質數為" << prime << endl;
system("pause");
return 0;
}
只是我想請問..
我發現有沒有While迴圈似乎對整個算出來的解答沒有影響
我自己有將這code改寫成沒有while回圈而且可以自己輸入任意數..
但隨便輸入一個數算出來的最大質數也都是正確的....
所以我一直在思考這個迴圈的存在意義..
因為看來他執行完裡面的for迴圈就會直接把flag改成true然後跳出while迴圈
那...它這邊為何要加一個While迴圈呢???
懇請高手幫忙解答..。非常感謝....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.11.71
推
12/17 02:36, , 1F
12/17 02:36, 1F
推
12/17 02:39, , 2F
12/17 02:39, 2F
→
12/17 02:40, , 3F
12/17 02:40, 3F
推
12/17 02:42, , 4F
12/17 02:42, 4F
→
12/17 02:43, , 5F
12/17 02:43, 5F
→
12/17 02:44, , 6F
12/17 02:44, 6F
→
12/17 02:44, , 7F
12/17 02:44, 7F
→
12/17 02:45, , 8F
12/17 02:45, 8F
→
12/17 02:45, , 9F
12/17 02:45, 9F
→
12/17 02:47, , 10F
12/17 02:47, 10F
→
12/17 02:48, , 11F
12/17 02:48, 11F
→
12/17 02:49, , 12F
12/17 02:49, 12F
→
12/17 02:57, , 13F
12/17 02:57, 13F
推
12/17 03:09, , 14F
12/17 03:09, 14F
推
12/17 08:17, , 15F
12/17 08:17, 15F
→
12/17 08:18, , 16F
12/17 08:18, 16F
→
12/17 09:38, , 17F
12/17 09:38, 17F
→
12/19 10:23, , 18F
12/19 10:23, 18F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 4 篇):