一道笔试题(求质数乘积)

前今天参加了场笔试里面有一道关于求质数乘积的题,当时虽说写完了程序但是总感觉有什么不对的地方所以今天写了一下,发现当时求质数的函数写的有些复杂,还是基础太差再加上长时间不写代码所致,由于我参加的笔试公司还没有完全招聘完,所以暂时不方便透露是什么公司,以此文章祭奠我第一次挂掉的笔试。

题目很简单就是让你写出个关于求某个数的质数的乘积,写出思路,画出流程图并写出程序。

例如24=2*2*2*3;

分析思路如下:先求出最小的质数然后用待求值去除以此时的质数如果余数等于零则说明此质数为其所求值中的一个然后把所得的商递归直至最后所得的商为质数;(表述可能不太清除,请谅解)js代码如下:

<!--
code by 
date 2013-09-14
求某个数的质数积例如:24=2*2*2*3; 
 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!-- <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> -->

<script>
function Prime(n){
    var m = n;
    for(var i=2;i<=m;i++)
    {
        if(m%i==0)
        {
            return i;
        }    
    } 
}
function recursive(n){
    var m=n;
    var iPrime = Prime(m);
    document.write(iPrime+"*");
    var t = iPrime;
    if(iPrime<=m)
    {
        if(m/iPrime==1)
        {
            return m;        }
        if(m%iPrime==0)
        {
            recursive(m/iPrime);
            //return iPrime;
        }
    }
    
}
window.onload=function(){
    var oSubmit = document.getElementById("submit");
    var oNumber = document.getElementById("number");
    oSubmit.onclick=function(){
        var num = parseInt(oNumber.value);
        var pattern =/\d/;
        //alert(typeof num);
        if(pattern.test(num))
        {
            var iNum = recursive(num);
            alert("停顿查看值");
        }
        else
        {
            alert("输入的不为数字,请重新输入");
        }        
    }
}
</script>
<style type="text/css">

</style>

<body>
    <form id="form">
        <input type="text" id="number" name="number"  />
        <input type="submit" id="submit" name="submit" />
    </form>
</body>
</html>

图示如下:

VIX`B0Z[WCLO_LUGJPWJI93[3]

博客刚开始写,以前wordpress都是自己记录着玩的,根本没有让百度收录,如果大家很不幸的看见这个文章,有什么问题和指教请多多交流,谢谢!

posted on 2013-09-14 14:31  前端小码农  阅读(906)  评论(0编辑  收藏  举报

导航