判断101-200之间有多少个素数,并输出所有素数。
public class Demo01 {
public static void main(String[] args) {
int i,j,sum=0;
System.out.println("101到200之间的素数为:");
for(i=101;i<=200;i++) {
for(j=2;j<i;j++) {
if(i%j==0) {
break; //结束所在的循环,跳出内循环
}
}
if(j>=i) {
sum++;
System.out.print(i+" ");
}
}
System.out.println();
System.out.println("101到200之间的素数一共有:"+sum+"个");
}
}
结果如下
其他方法
package project;
//首字母大写
public class Question01 {
public static void main(String[] args) {
/**
* 判断101-200之间有多少个素数,并输出所有素数。
* 素数:也叫质数,除了1和它本身再没有因数
*/
/**
* 实现思路:
* 1.找到101-200的数,循环
* 2.判断它除1和它本身有没有因数?有它就不是质数,没有 的话,它就是质数,打印输出
*
* ??
* 1.用平方根求因数:如果一个非素数,它的其它因数必有一个小于它的平方根,还有一个大于平方根
* 2.用一半数来求因数:如果一个非素数,在它的一半i/2内(包括它的一半)<=i/2,能求到除了它本身以外的其他因数。
*/
//1.找到101-200的数,循环
boolean isResult = true;//定义变量尽量在外部定义,为什么呢?
for (int i = 101; i <=200; i++) {
isResult = true;//重量级
//内循环,找因数
for (int j = 2; j <=Math.sqrt(i); j++) {
//for (int j = 2; j <=i/2; j++) {
if(i%j==0)
{
//不是素数
isResult=false;
break;
}
}
if(isResult)
System.out.print(i+" ");
}
}
}
public class Question1 {
public static void main(String[] args) {
int j,n,sum=0;
boolean flag;
System.out.println("101-200之间的素数有:");
for(int i=101; i<=200; i++) {
flag = true;
n = (int)Math.sqrt(i);
for(j=2; j<=n; j++) {
if(i%j == 0) {
flag = false;
break;
}
}
if(flag == true) {
sum++;
System.out.print(i+" ");
}
}
System.out.println();
System.out.println("101-200之间共有" + sum + "个素数");
}
}
public class Demo {
public static void main(String[] args) {
for(int i=101; i<=200; i++)
{
// 判断 i 是否为质数
boolean isPrime = true;
for(int k=2; k<i; k++)
{
if( i % k == 0)
{
isPrime = false;
break;
}
}
// 如果是质数,则直接输出
if( isPrime )
{
System.out.print(i+" ");
}
}
}
}