A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 严露华 于 2013-4-15 22:36 编辑

比如取1到100的素数,怎么才能用代码来表示,还有随机从1到100的取两个数,求出他们的最大公约数和最小公倍数,这样的代码应该怎么写?那么数学和代码之间有没有相通的思想呢?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

2 个回复

倒序浏览
程序设计的思想:数据结构+算法。
首先先建立数学模型
回复 使用道具 举报
首先,你得知道什么是素数啊,素数在数学里面的计算公式是是什么,只要明确了这个,也就是这个方法的算法,用代码写出来就不是什么问题了
找到素数的代码
[素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积]
class  Primes{
public  static  void  main(String args[]){
int  w=1
for(int i=2;i<=100;i++){
for(int j=2;j<i;j++){
w=i%j;
if(w==0)
break;
}
if(w!=0)
System.out.println(i+"是素数");
}
}
}
找到质数:代码
所谓质数就是只能被1和它本身整除的数,那么对于某一个数a,可以试着让它除以a-1......2,如果有任意一次除法的余数为零,这个数a就不是质数。
程序中可以写成for循环的形式:
for(int i = 2; i < 100; i++) {
    for (int j = i-1; j > 1; j--) {
        if (i % j == 0) {
            System.out.println("数字" + i + "不是质数");
            break;
        }
    }
}
上面的代码只是给你一个算法  具体实现你可以去自己琢磨一下  还有就是这个代码可以优化一下 ,比如只要2的倍数的都不是质数,并且是2的倍数的 i 都不必作为验证的除数去除。可以提高一些效率。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马