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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 情不知所起 中级黑马   /  2017-3-11 21:01  /  1554 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

不知道怎么做。。。。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端

8 个回复

倒序浏览
你还没开始学吗,怎么这个都不会
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
会了。,忘了什么是素数
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
最大程度只能做成这样了,那个√m的真不太懂。
        public static void main(String[] args) {
                String s = "200内的素数有1, 3, 5, ";
                int num = 3;                                                //统计素数个数,已几记录1,3,5
                for (int i = 7; i < 200; i+=2) {        //偶数一定不是素数
                        int j = 0;
                        boolean tag = true;
                        for (j = 3; j <= i/2; j+=2) {        //忽略掉偶数,并只在一半里找,另一半的数一定不可能整除
                                if (i%j == 0) {
                                        tag = false;
                                        break;                                        //若能在一半里找到整除数就一定不是素数,否则就一定是素数并打标记
                                }
                        }
                        if (tag) {                                                //对打有标记的数统计
                                s = s + i + ", ";
                                num++;
                        }
                }
                System.out.println(s);
                System.out.println("一共有 " + num + " 个");
        }
}

点评

现在理解平方根了 i/2 换成 Math.sqrt(i),这样比较的次数更少,(比较的数大于9就比i/3比较次数还少)  发表于 2017-3-13 19:26
对了,那个/2可以换成/3这样就可以直比较1/3的数了,开始没注意到,呵呵,这样比较的次数更少  发表于 2017-3-13 19:12
回复 使用道具 举报
类似的
[AppleScript] 纯文本查看 复制代码
package myexam.test24;



/*
 * 问题. 设计一个方法,方法名叫:getCount。用来求1-100之间的素数的个数
 * 。要求有返回值,并把结果打印在控制台上.(素数:只能被1和自身整除的
 * 数,1不是素数)
 * 
 * 
 */
public class MyTest4 {

	public static void main(String[] args) {
		getCount(100);
	}
	public static void getCount(int end){
		int i = 0,num;
		int count=0;
		for( num=2;num<end;num++){
			for( i=2;i<num;i++){
				if(num%i==0){
					break;
				}
			}
			if(i==num){
				count++;
				System.out.println(i+"是素数");
			}
		}
		System.out.println("素数个数为:"+count+"个");
	}
}

回复 使用道具 举报
我觉得用一个方法做比较好

[AppleScript] 纯文本查看 复制代码
	public static void main(String[] args) {
		int count = 0;
		for (int i = 2; i <= 200; i++) {
			if (isPrimeNumber(i)) {
				count++;
				System.out.println(i);
			}
		}System.out.println("一共有"+count+"个质数");
	}
	public static boolean isPrimeNumber(int num){
		for (int i = 2; i < num; i++) {
			if (num % i == 0) {
				return false;
			}
		}return true;
	}
回复 使用道具 举报
chen10041014 发表于 2017-3-14 14:51
我觉得用一个方法做比较好

[mw_shl_code=applescript,true]        public static void main(String[] args) {

不错啊

来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马