学习网站建设,网页知识,电脑技巧,AS3代码,FLASH效果,课件制作,网络学习,运动生活,心情日志博客

分解质因数的编程算法

         本文讲述分解质因数的编程算法,程序使用FLASH AS3代码制作。在点击了按钮时,首先获取输入文本框中的数,分别存为uint和String 两种类型的变量备用。

         然后检测一下,输入的数是否小于2,如果是,则后面的while循环不会执行,此时文本框中给予提示。如果确是不小于2的数,再检查下是否首位不为0,如果为0文本框中也给予提示,不执行后面的循环。如果确是符合上面的两个条件,则可以开始运算,在算之前先得到系统时间,算完后再得到系统时间,两者之差即为所耗用的毫秒数。

         在while循环中,执行条件为选用的质数小于等于要分解的数,如果能整除,则把该质数加入字符串,并算出商,让它成为下一次要分解的数。不能整除的话,则让n++换一个更大一点的质数来试,直到最后被除数与除数相同为止。

       为了进行质数与合数的判断,加入了一个变量count。如果只能整除一次(即count为1时),可以判断输入的是一个质数,反之为合数,输出其分解质因数的结果。

 

out_txt.text=”请在上方文本框中输入整数进行分解!”;
input_txt.restrict=”0-9″;//限制仅输入数字;
input_txt.maxChars=9;//限制最多输入8个字符,再多一位数易使循环执行时间超过15s

_btn.addEventListener(MouseEvent.CLICK,onClick);
function onClick(e:MouseEvent):void {
 var num:uint=uint(input_txt.text);//以数字形式存储所输入的数
 var str:String=String(num);//以字符串形式存储所输入的数
 var n:uint=2;//第一个尝试的质数
 var flag:int=1;//用于去掉第一个质因数前的X号
 var count:int=0;//用于判断是否为质数
 if (num<2) {
  out_txt.text=”请输入大于1的整数!”;
 } else {
  var oldTime:Number=getTimer();
  if (input_txt.text.substr(0,1)!=”0″) {//首位字符不为0
   while (n<=num) {
    if (num%n==0) {
     if (flag) {
      str+=”=”+n;//要用+= ,不然用=会覆盖原数
      flag=0;
     } else {
      str=str+”×”+n;
     }
     num=num/n;
     count++;
    } else {
     n++;
    }
   }
   out_txt.text=str;
   if (count==1) {
    out_txt.text=”这是一个质数,不能分解”;
   }

   var newTime:Number=getTimer();
   time_txt.text=”用时”+(newTime-oldTime).toString()+”毫秒”;
  
  } else {
   out_txt.text=”首位不能为0″;
  }
 }
}

本文地址:http://www.lxlong.net/archives/492.html

本文标题:分解质因数的编程算法

 
« »                

没有评论

发表评论 »