史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2007-10-21, 11:33 PM   #1
clout
註冊會員
榮譽勳章
UID - 254455
在線等級: 級別:8 | 在線時長:113小時 | 升級還需:4小時級別:8 | 在線時長:113小時 | 升級還需:4小時級別:8 | 在線時長:113小時 | 升級還需:4小時
註冊日期: 2006-09-28
VIP期限: 2008-09
文章: 148
精華: 0
現金: 5583 金幣
資產: 5583 金幣
預設 討論 - 有關質數

現在有個問題,印出小於60的質數

但有公式能算出質數嗎?或是有什麼其他辦法??

麻煩請各位給我一個方向,在邏輯上該怎麼想

除了1與自己外,沒其他因數,然後......?
clout 目前離線  
送花文章: 29, 收花文章: 9 篇, 收花: 10 次
回覆時引用此帖
舊 2007-10-21, 11:51 PM   #2 (permalink)
榮譽會員
 
猜謎人 的頭像
榮譽勳章
UID - 14438
在線等級: 級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時
註冊日期: 2002-12-19
住址: 虎爛宮解籤詩處
文章: 18702
現金: 10109 金幣
資產: 2886912 金幣
預設

你可以做巢狀循環
兩個for
第一個從1到60
每一個數字從1一直除到他本身,這是第二個for
只有1和他本身可以整除就列出
__________________
http://i171.photobucket.com/albums/u287/sad_jellyfish/net-pic/s_zpsf91b1q3t.jpghttp://i171.photobucket.com/albums/u287/sad_jellyfish/gif/banner.gifhttp://i171.photobucket.com/albums/u287/sad_jellyfish/gif/kkk_zps3punatke.gif
猜謎人 目前離線  
送花文章: 1110, 收花文章: 16299 篇, 收花: 83322 次
回覆時引用此帖
有 2 位會員向 猜謎人 送花:
clout (2007-10-24),uplander (2007-10-22)
感謝您發表一篇好文章
舊 2007-10-22, 10:27 AM   #3 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:98 | 在線時長:10173小時 | 升級還需:24小時級別:98 | 在線時長:10173小時 | 升級還需:24小時級別:98 | 在線時長:10173小時 | 升級還需:24小時級別:98 | 在線時長:10173小時 | 升級還需:24小時級別:98 | 在線時長:10173小時 | 升級還需:24小時級別:98 | 在線時長:10173小時 | 升級還需:24小時級別:98 | 在線時長:10173小時 | 升級還需:24小時級別:98 | 在線時長:10173小時 | 升級還需:24小時
註冊日期: 2002-12-07
文章: 13494
精華: 0
現金: 26859 金幣
資產: 3024789 金幣
預設

如猜謎人所言
要設一個計數器 a
For VB
語法:
Private Sub Command1_Click()
Dim prime_number(1 To 60) As Boolean
Dim i As Integer, j As Integer, a As Integer

For i = 1 To 60
    a = 0
    For j = 1 To i
        If (i Mod j) = 0 Then a = a + 1
        If a >= 3 Then Exit For
    Next
    If a <= 2 Then prime_number(i) = True
Next

For i = 1 To 60
    If prime_number(i) = True Then Print i
Next

End Sub

此帖於 2007-10-22 11:07 AM 被 mini 編輯.
mini 目前離線  
送花文章: 2055, 收花文章: 8070 篇, 收花: 26924 次
回覆時引用此帖
向 mini 送花的會員:
clout (2007-10-28)
感謝您發表一篇好文章
舊 2007-10-24, 11:43 PM   #4 (permalink)
註冊會員
榮譽勳章
UID - 254455
在線等級: 級別:8 | 在線時長:113小時 | 升級還需:4小時級別:8 | 在線時長:113小時 | 升級還需:4小時級別:8 | 在線時長:113小時 | 升級還需:4小時
註冊日期: 2006-09-28
VIP期限: 2008-09
文章: 148
精華: 0
現金: 5583 金幣
資產: 5583 金幣
預設

謝謝兩位

雖然還看不大懂,但至少知道要往哪個方向去想了
clout 目前離線  
送花文章: 29, 收花文章: 9 篇, 收花: 10 次
回覆時引用此帖
舊 2007-10-26, 12:42 AM   #5 (permalink)
註冊會員
 
joebin 的頭像
榮譽勳章

勳章總數
UID - 270712
在線等級: 級別:2 | 在線時長:16小時 | 升級還需:5小時級別:2 | 在線時長:16小時 | 升級還需:5小時
註冊日期: 2007-06-06
住址: 過去*現在*未來
文章: 42
精華: 0
現金: 58 金幣
資產: 118 金幣
預設

引用:
作者: clout 查看文章
謝謝兩位

雖然還看不大懂,但至少知道要往哪個方向去想了
那我用學生的語言解說好了^^"



首先要質數的定義是:
除了自己和1外無其他的因數(1除外)


再來是談論到因數問題:
若正整數N在根號N中只找到1這個因數,則N為質數(1除外)

原因:
設N.n.m為一自然數,且n * m = N,則n.m為N的因數(註:n >= m)
另設一數k,使其 k * k = N,則就n.m.k的大小而言,n >= k >= m
既然n * m = N,且k * k = N,那在小於或等於k的自然數中必能找到m
所以~
若正整數N在根號N中只找到1這個因數,則N為質數(1除外)


由此想法來建構一程式
語法:
#include<iostream>
using namespace std;
int main(){
  int i,n,N,t;
  cin >>N;     //輸入你所要求質數的最高上限數,例如樓主所發問的60
  for(n=2;n<=N;n++){
    t=1;    //判斷n是否在2~根號n中尚有其他因數存在
    for(i=2;i*i<=n;i++)//若正整數n在根號n中只找到1這個因數,則n為質數
      if(n%i==0){
        t=0;
        break;
    }
    if(t==1) cout <<n<<endl;
  }
  return 0;
}

不知這樣的解說夠不夠清晰^^"

此帖於 2007-10-26 01:06 AM 被 joebin 編輯.
joebin 目前離線  
送花文章: 15, 收花文章: 18 篇, 收花: 28 次
回覆時引用此帖
向 joebin 送花的會員:
clout (2007-10-28)
感謝您發表一篇好文章
舊 2007-10-28, 02:18 PM   #6 (permalink)
註冊會員
榮譽勳章
UID - 254455
在線等級: 級別:8 | 在線時長:113小時 | 升級還需:4小時級別:8 | 在線時長:113小時 | 升級還需:4小時級別:8 | 在線時長:113小時 | 升級還需:4小時
註冊日期: 2006-09-28
VIP期限: 2008-09
文章: 148
精華: 0
現金: 5583 金幣
資產: 5583 金幣
預設

請問為什麼寫出來後變成從2印到60@@?
語法:
public class zxc{
	public static void main(String[] args){
	
	int i,n,max=0;
	
	System.out.println("質數有");
	for(i=2;i<=60;i++){
	   for(n=2;n<=i;n++){
	       if(i==n && i%n==0){            //兩數相等而已餘數相等,開始執行
	       System.out.println(i);
	       max=i;
	       } 
           }
	}
	System.out.println("最大質數"+max);
}
}
clout 目前離線  
送花文章: 29, 收花文章: 9 篇, 收花: 10 次
回覆時引用此帖
舊 2007-10-28, 05:51 PM   #7 (permalink)
榮譽會員
 
猜謎人 的頭像
榮譽勳章
UID - 14438
在線等級: 級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時級別:99 | 在線時長:10294小時 | 升級還需:106小時
註冊日期: 2002-12-19
住址: 虎爛宮解籤詩處
文章: 18702
現金: 10109 金幣
資產: 2886912 金幣
預設

public class zxc{
public static void main(String[] args){

int i,n,max=0;

System.out.println("質數有");
for(i=2;i<=60;i++){
for(n=2;n<=i;n++){
if(i==n && i%n==0){ //自己除自己當然可以整除
System.out.println(i);
max=i;
}
}
}
System.out.println("最大質數"+max);
}
}
猜謎人 目前離線  
送花文章: 1110, 收花文章: 16299 篇, 收花: 83322 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 09:22 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1