素数:定义为大于1的自然数,除了1和它本身外都不能被其他数整除。
引用如下方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
import java.util.Scanner;
public class sushu {
public static void main(String[] args) {
boolean isPrime=true;
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个正整数:");//9 11
int num=sc.nextInt();
if(num>0){
int k=(int)Math.sqrt(num);
for (int i = 2; i <=k ; i++) {//k=9 k=11
if(i%k==0){
isPrime=false;
break;
}
}
}
if(isPrime){
System.out.println(num+"是素数");
}else{
System.out.println(num+"不是素数");
}
}
}
求100以内的素数:
public class sushu {
public static void main(String[] args) {
int count = 0, sum = 0;
for (int i = 2; i <= 100; i++) {
int a = 0;
int k = (int) Math.sqrt(i);
for (int j = 1; j <= k; j++) {
if (i % j == 0)
a++;
}
if (a == 1) {
sum++;
// System.out.print(i+";"+k+" ");
}
}
System.out.println("100以内的素数个数为:" + sum);
}
}
小贴士:如果在输出过程中发现for循环中定义的字符错误,可以在开始时重新定义一遍!