2、区间内素数(质数)的个数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tfstone/article/details/89971940

问题如下:

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

素数/质数的定义只能被1或本身整除的数

所以一个数除以除了1与本身的数之外的数 能除尽,则不是质数,思考了一下质数有这些:3 ,5 ,7,11,131 ......

思路:

在求区间素数个数时,对某一个未知类型的数,可以把它对2到它本身(1不用看了吧)的每一个数取模,模的尽则不为素数;

稍加思索,假设有c = a*b ,当a <= Math.sqrt(c)时,有b >= Math.sqrt(c), 故模到这个数的平方根即可

代码如下:

		public static void main(String[] args) {
			// TODO Auto-generated method stub
			int sum = 0;
			for(int i = 100; i < 200; i ++){
				if(isPrime(i)){
					System.out.print(i + "  ");
					sum++;
				}
			}
			System.out.print("\n素数有"+sum+"个");
		}
		
		static boolean isPrime(int n){
			for(int i = 2; i <= Math.sqrt(n); i++){
				//模的尽则不为素数
				if(n%i==0){
					return false;
				}
			}
			return true;
		}

结果:

 

猜你喜欢

转载自blog.csdn.net/tfstone/article/details/89971940