java 求素数
素数除2为偶数,其他全为期数;所以在求解过程中必须排除偶数。
但是根据素数的定义,只要数载他的一半的时候就可以啦!
package lianxi;
public class SuShuo {
public static void main(String[]args){
getRun(100);
System.out.println("-------------------------------------------------");
int count=0;
for(int i=3;i<100;i=i+2){
if(isPrime1(i)){
System.out.println(i);
count++;
}
}
System.out.println("总数1:"+count);
}
public static void getRun(int n){
if(n==2)
System.out.println("2 是素数");
else if(n==3)
System.out.println("3 是素数");
else if(n>4){
int count=0;
for(int i=3;i<n;i=i+2){
if(isPrimeT(i)){
count++;
System.out.println(i);
}
}
System.out.println("总数2:"+count);
}
}
public static boolean isPrimeT(int n){//判断该数是否是素数
for(int j=3;j<(n+1)/2;j+=2){
if(n%j==0){
return false;
}
}
return true;
}
public static boolean isPrime1(int n){
if(n < 2)
return false;
if(n == 2)
return true;
for(int i = 3; i*i <= n; i += 2){
if(n%i == 0){
return false;
}
}
return true;
}
}
本文出自 “技术人生” 博客,请务必保留此出处http://zhaohaiyang.blog.51cto.com/2056753/512101
相关新闻>>
- 发表评论
-
- 最新评论 更多>>