首页 > 试题广场 >

判断101-200之间有多少个素数,并输出所有素数。

[问答题]

判断101-200之间有多少个素数,并输出所有素数。

public class Test {
    public static void main(String[] args) {
        for (int i = 101; i <= 200; i++) {
            boolean b = false;
            for (int j = 2; j < Math.sqrt(i) ; j++) {
                if(i % j == 0){
                    b = false;
                    break;
                }else{
                    b = true;
                }
            }
            if(b){
                System.out.println(i);
            }
        }
    }
}
发表于 2017-09-22 19:10:06 回复(6)
public class isPrime {

public static void main(String[] args) {
boolean b = false;
for (int i = 101; i < 201; i++) {
for (int j = 2; j < i - 1; j++) {
if (i % j == 0) {
b = false;
break;
} else {
b = true;

}

}
if (b == true) {
System.out.print(i + " ");
}
}

}
}
发表于 2017-08-20 11:14:31 回复(1)
#include <iostream>
#include <cmath>
using namespace std;
void isprime (int sta,int en)
{
     int cnt=0;
	 int j;
     for(int i=sta;i<= en;i++)
     {
     for(j=2;j<=sqrt(i*1.0);j++)
     {
      if(i%j==0)
      break;
     }
     if(j==(int)sqrt(i*1.0)+1)
    {
     cnt++;
     cout<<i<<endl;
     }
     }
     cout <<cnt<<endl;
}
int main()
{
   int sta,en;
   while(cin>>sta>>en)
   isprime (sta,en);
    return 0;
}

发表于 2017-08-22 18:59:09 回复(0)
//素数是只能被1和自身整除的数,循环遍历,但是可以缩小范围,1)n不能被>n/2的数整除;更小的范围是n不能被>根号n的数整除
functiongetNumber(){
    varcount ={};
    varsn=Math.sqrt(200);
    for(vari =101;i<200;i++){
        for(varj = 2;j<=sn;j++){
           if(i%j==0&&j!=sn){
                //可以被除了自身和1整除,不是素数
                break;
            }
        }
        if(j==Math.ceil(sn)){
            count.push(i);
        }
    }
console.log(count);
}
发表于 2017-10-08 17:41:10 回复(0)
sushu=[]
for i in range(101,200):
    for j in range(2,i):
        if i%j==0:
            break
    else:
        sushu.append(i)
n=len(sushu)
print "101-200之间素数的个数为:",n,"个"
print "101-200之的间素数为:",sushu


发表于 2017-09-08 11:41:41 回复(2)
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a, b;
        while (true) {
            System.out.println("请输入第一个整数a:");
            a = scanner.nextInt();
            System.out.println("请输入第二个整数b(b>a):");
            b = scanner.nextInt();
            if (b <= a) {
                System.out.println("你输入的数不符合要求,请重新输入:");
                continue;
            }
            break;
        }
        List<Integer> integerList = printAllPrimeNumber(a, b);

        System.out.println(a + "和" + b + "之间有" + integerList.size() + "个素数,分别为:" );
        System.out.println(integerList.toString());
    }

    private static List<Integer> printAllPrimeNumber(int a, int b) {
        List<Integer> list = new ArrayList<>();
        for (int i = a; i <= b; i++) {
            int temp=0;
            for (int j = 2; j < i; j++) {
                if (i % j == 0) {
                    temp=0;
                    break;
                }
                temp=i;
            }
            if (temp!=0) {
                list.add(temp);
            }
            if (i==2){
                list.add(i);
            }
        }
        return list;
    }

请输入第一个整数a:
1
请输入第二个整数b(b>a):
30
1和30之间有10个素数,分别为:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
发表于 2019-09-03 13:25:00 回复(0)
//求10000000以内素数:素数筛选法
public class prime {
	public static void main(String[] args) {
		int N=100000000; boolean[] result = new boolean[N];
		for (int i = 1; i <= result.length; i++) {
			if(i%2==0) result[i-1] = false;//偶数全部是素数
			else result[i-1] = true;//奇数不能确定,先算为素数
		}
		for (int i = 3; i <= Math.sqrt(N); i+=2) {//这个for循环意思是,如果一个数为素数,那么它的倍数都不是素数,从3开始判断
			if (result[i-1]==true) {
				for (int j = i+i*2; j <= result.length; j=j+i*2) {
					result[j-1] = false;//以3为例,此时9,15,21,27,33....都被设为false
				}
			}
		}
		for (int i = 0; i < result.length; i++) {
			if (result[i]==true)
				System.out.println(i+1);
		}
	}

}

编辑于 2017-08-21 22:34:36 回复(0)
# 使用python 列表推导式,两行代码。
s = [p for p in range(101,201) if 0 not in [p % d for d in range(2, int(p**0.5)+1)]]
print(len(s),s) # 结果 21 [101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]

发表于 2017-10-31 20:37:20 回复(2)
int main()
{ int i,j;
int count=0;
for(i=101;i<=200;i++)
for(j=2;j<i;j++)
{
if(i%j==0)
break;
}
if(j>=i)
{
count++;
printf("%d",i)
}
}
发表于 2017-09-07 17:39:07 回复(0)
#include <stdio.h>

int print_num(int i)
{
    int j;
    for(j = 2;j <= i/2;j++)
    {
        if(i%j == 0)
        {
            return 1;
        }
    }
    return 0;

}

int main(void)
{
    int i;

    for(i = 101; i <= 200;i++)
    {
        if(print_num(i) == 0)
        {
            printf("%d ",i);
        }
    }
    return 0;
}

发表于 2021-07-10 07:56:06 回复(0)
#include "stdio.h"
void main()
{
    int i,j;
    for(i = 101 ; i <= 200 ; i++ )
    {
        for(j = 2 ; j < i ; j++)
        {
            if(i % j == 0)          //只要除到一个数让 i 能被整除就跳出该循环。
            {
                break;
            }
            else
            {
                if( j == i-1 )          //除完最后一个数后还不跳出循环,就可以判断该数为素数。
                {
                    printf("%d ",i);

                }
            }
        
          }


    }

}

发表于 2019-04-17 13:03:20 回复(0)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int Is_prime(int n)
{
    int i;
    for(i=2;i<=n/2; i++)
        if(n%i==0)
            return 0;
    return 1;
}

int main()
{
    int i;
    for(i=101; i<=200; i += 2)
        if(Is_prime(i) == 1)
            printf("%d ", i);
    return 0;
}
发表于 2019-02-17 12:10:57 回复(0)
python的语句 for i in range(101,201): fg = 0 for j in range(2,i-1): if i%j == 0: fg = 1 break if fg == 0: print(i)
编辑于 2018-05-08 16:18:53 回复(0)
遍历从2到sqrt(i)
发表于 2018-03-16 22:16:51 回复(0)
#用python切片,一行搞定
print(len(list(range(101,201))[::2]),list(range(101,201))[::2])
发表于 2018-02-11 22:32:09 回复(0)
package 牛客冲刺java编程1994; public class task06 { public static void main(String[] args) { int count=0; System.out.println("101到200之间的所有素数:"); for(int n=101;n<200;n++){ if(show(n)){ count++; System.out.println(n); } } System.out.println("101到200之间的素数有"+count+"个"); } public static boolean show(int nums){ boolean flag=true; for(int sum=2;sum<=Math.sqrt(nums);sum++){ if(nums%sum==0){ flag=false; break; } } return flag; } } 以上是本人的建议! 若有采纳,不胜荣幸!
发表于 2018-01-13 17:41:53 回复(3)
逻辑
编辑于 2018-04-28 14:16:53 回复(0)
public class Niu6 { public static void main(String []args) { int count=0,j; for(int i=101;i<200;i+=2) { for(j=3;j<=Math.sqrt(i);j++) { if(i%j==0) break; } if(j>Math.sqrt(i)) System.out.print(i+" "); } } }
发表于 2017-12-07 15:39:14 回复(0)
鷐头像
function judgePrimeRange(min,max){
    var a=new Array();
    var b=new Boolean(false);
    for(var i=min;i<=max;i++){
        b=false;
        for(var j=2;j<i;j++){
            if(i%j==0){
                b=true;
                break;
            }
        }
        if(b){
            a.push(i);
        }
    }
    console.log(a);
    if(a.length>0){
        console.log("存在素数")
    }else{
  
    }
}
发表于 2017-11-20 19:36:15 回复(0)
var a=0 for(var i=101;i<=200;i++){ for(var j=2;j<=i;j++){ if(i%j==0){}else{ document.write(i) a++ } } } document.write(a)
发表于 2017-10-26 11:41:57 回复(0)