- 最後登錄
- 2024-5-19
- 在線時間
- 0 小時
- 註冊時間
- 2016-8-22
- 閱讀權限
- 20
- 精華
- 0
- UID
- 16624936
- 帖子
- 61
- 積分
- 49 點
- 潛水值
- 27040 米
| - //1一般認為不是質數(更不是合數),所以從2開始
- int n = 2;
- int N = int.Parse(Console.ReadLine());
- //用List<T>存質數是為了減少內層迴圈執行次數(可以被合數整除,就一定可以被質數整除,所以用質數判斷就好)
- List<int> nums = new List<int>();
- while (n <= N)
- {
- //質數的定義是除了1與本身以外沒有其他因數(不可被1及本身以外的數字整除)
- bool isPrime = true;//判斷是否為質數的變數
- //用for迴圈從第一個nums元素除到最後一個,判斷n可不可以被nums元素整除
- //若可以被List<T>元素整除isPrime設為false並跳出迴圈
- //在內層迴圈外若isPrime為true(表示n為質數),把n加到nums並印出n
- for (int i = 0; i < nums.Count; i++)
- {
- if (n % nums[i] == 0)
- {
- isPrime = false;
- break;
- }
- }
- if (isPrime)
- {
- nums.Add(n);
- Console.WriteLine(n);
- }
- n++;
- }
- Console.WriteLine("共{0}個質數", nums.Count);
複製代碼 ... |
|