|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2006-02-18, 05:20 AM | #1 |
榮譽會員
|
編寫一個方法,求輸入的整數是否為完全數
編寫一個方法,求輸入的整數是否為完全數。完全數是指其所有因子(包括1但不包括該數自身)的和等於該數自身的數。
import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class wanzhengshu extends Applet { Label wanzhengshu; TextField L_input,U_input; int LowerLimit,UpperLimit; public void init() {wanzhengshu=new Label("請輸入你的數的範圍:"); L_input=new TextField(10); U_input=new TextField(10); add(wanzhengshu); add(L_input); add(U_input); } boolean iswanzhengshu(int i) { int m,e; boolean f_i; f_i=false; for(m=0,e=1;e<=i/2;e++) /*計算a的因子,並將各因子之和m=a,則a是完全數輸出*/ { if(i%e==0) m+=e; if(m==i) f_i=true; } return f_i; } public void paint(Graphics g) {int i,k=0,p=0; boolean f_i; for (i=2;i<UpperLimit;i++) {if(UpperLimit%i!=0) continue; f_i=iswanzhengshu(i); if(f_i) { g.drawString(Integer.toString(i),50+k*50,40+p*50); if(k>10) {p++; k=0; }else k=k+1; } } k=0;p=0; for (i=LowerLimit;i<UpperLimit;i++) { f_i=iswanzhengshu(i); if(f_i) { g.drawString(Integer.toString(i),50+k*50,100+p*50); if(k>10) {p++; k=0; }else k=k+1; } } } public boolean action(Event e,Object o) { int temp; if(e.target==U_input) {LowerLimit=Integer.parseInt(L_input.getText()); UpperLimit=Integer.parseInt(U_input.getText()); if(LowerLimit>UpperLimit) { temp=LowerLimit; LowerLimit=UpperLimit; UpperLimit=temp; } repaint(); } return true; } } |
__________________ |
|
送花文章: 3,
|