黑马程序员技术交流社区
标题:
判断101-200之间有多少个素数,并输出所有素数。
[打印本页]
作者:
下一秒温存
时间:
2014-11-10 12:13
标题:
判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
public class exp2{
public static void main(String args[]){
int i=0;
math mymath = new math();
for(i=2;i<=200;i++) //引用for循环进行遍历
if(mymath.iszhishu(i)==true)
System.out.println(i);
}
}
class math
{
public int f(int x)
{
if(x==1 || x==2)
return 1;
else
return f(x-1)+f(x-2);
}
public boolean iszhishu(int x)
{
for(int i=2;i<=x/2;i++)
if (x % 2==0 )//膜二运算
return false;
return true;
}
}
作者:
焦旭宁1
时间:
2014-11-10 13:47
攒个!!!!
作者:
20140829
时间:
2014-11-10 13:58
本帖最后由 20140829 于 2014-11-10 13:59 编辑
public class exp2 {
public static void main(String[] args) {
for (int i = 2; i <= 200; i++) {
int count = 0;//定义一个计数器
for (int j = 1; j <= i; j++) {
if (i % j == 0) {//计算出i整除j的次数
count++;//每整除一次,计数器count增加一次
}
}
if (count == 2) {//当i只有两次被整除的时候,那么i就是素数
System.out.println(i + "是素数");
}
}
}
}
复制代码
作者:
冥夜
时间:
2014-11-10 14:41
算法可以优化下,对于求X以内的素数其实除到√X就行了,然后其实一个数只要不能被小于其的所有素数整除那个数就是素数,所以可以设置一个数组保存素质,然后递归就好了,这样才是优化的算法。然后还有就是用筛法。。
作者:
song395866365
时间:
2014-11-10 17:23
不错呦:lol
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2