黑马程序员技术交流社区
标题:
关于求出1~100之间的素数问题。
[打印本页]
作者:
luxinyu
时间:
2015-5-25 23:21
标题:
关于求出1~100之间的素数问题。
主要代码如下:
for
(
int
a=
2
;
a<
100
;
a++)
{
for
(
int
b=
2
;
b<a-
1
;
b++)
{
}
}外层for循环式没有问题的。。但是在最内层循环中怎么用if才能判断出这个数不能被除了1和他自身其他的数除开呢?
作者:
niuapp
时间:
2015-5-25 23:57
你想想素数是什么:
只能被1 和本身整除;
所以:
先找一个数 x,判断它是否为素数?
怎么判断呢?
因为只能被1和本身整除
所以可以遍历 从 2 开始 到 该数 之间的所有数 i;
每次都用该数除以这之间的数 求余(x % i), 如果有一次这个余数的值为0,证明这个数不是素数,跳出此循环,继续判断下一个数
作者:
wangkai
时间:
2015-5-26 10:42
跟我的一道基础测试题有点类似,修改了一下,希望对你有帮助。
class Demo1
{
public static void main(String[] args)
{
//遍历所有三位数,作为被除数。
for(int x=2; x<100; x++)
{
//定义计数器,用来记录整除的次数。
int count = 0;
//遍历除数。
for(int y=1; y<(x+1)/2; y++)
{
//判断整除的条件。如果整除,count自增。
if(x%y==0)
count++;
}
//判断整除的次数,如果小于2,则为质数。
if(count<2)
System.out.println(x+"...是素数");
}
}
}
复制代码
作者:
志行
时间:
2015-5-26 11:27
就是我的一道基础测试题 不过 我的那一道题还要求 包含7的素数不输出~~~
作者:
李志鹏
时间:
2015-5-26 11:49
[code]public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
getSS();
}
private static void getSS() {
for (int i = 1; i <= 100; i++) {
boolean flag = true;
for (int j = 2; j < i; j++) {
if(i%j == 0){
flag = false;
break;
}
}
if(flag){
System.out.print(i+",");
}
}
}
}
作者:
forTomorrow
时间:
2015-5-26 17:10
import java.util.ArrayList;
import java.util.List;
public class Test1 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();//定义集合list用于存储素数
int count = 0;//计数器
//对1-100间的数遍历
for (int i = 1; i < 100; i++) {
//遍历所有可能的除数
for (int j = 1; j <= i; j++) {
if (i % j == 0)
count++;
}
//将素数存储到list中
if(count<=2)
list.add(i);
//计数器清0
count=0;
}
//利用增强for循环遍历集合list并打印到控制台
for(Integer e:list){
System.out.print(e+" ");
}
}
}
作者:
海洋你好
时间:
2015-5-26 20:15
*
* 编程打印所有的3位质数,质数特点:只能被1和其本身整除
*/
public class Test8 {
public static void main(String[] args) {
int i,j;
//定义两个整型变量i,j;
for( i=1;i<1000;i++)
//设置第一层for循环;
{
{for( j=2;j<i;j++)
//第二层for循环用于验证第一层给出的数是否是质数;
if(i%j==0&&i!=j) break ;
//把要验证的数用2到他本身所有的数去除,如果能整出,说明不是质数,则跳出本次循环;
if(i==j)
System.out.println(i);
//如果是质数则输出这个质数;
}
}
}
}
这是我自己写的,你可以参考下
作者:
1017161726
时间:
2015-5-26 20:53
外层定义标记,boolean bool=false; 内层写: if ( a%b == 0 ) bool = true; 然后外层判断布尔值,bool = true , 就不是素数。
作者:
守株人
时间:
2015-5-26 22:04
我是来学习的
作者:
zhangjnia
时间:
2015-5-26 22:35
不错,向各位大神学习
作者:
流泪的青蛙
时间:
2015-5-26 22:59
大神真多呀
作者:
途中ms前进
时间:
2015-5-27 18:54
我来学习下
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2