判断输入的数字是否为素数
package mooc;
import java.util.Scanner;
public class Prime_sqrt {
public static void main(String[] args){
Scanner
in=
new Scanner(System.
in);
int x=
in.nextInt();
boolean isPrime=
true;
if(x==
1 || x%
2==
0 && x!=
2)
{
isPrime=
false;
}
for (
int i=
3;i<Math.sqrt(x);i+=
2)
{
if(x%i==
0)
{
isPrime=
false;
break;
}
}
if (isPrime)
{
System.
out.println(x+
"是素数");
}
else
{
System.
out.println(x+
"不是素数");
}
}
}
输出前50个素数(优化前)
package mooc;
public class IsPrime {
public static void main(String[] args)
{
int count=
0;
int test=
2;
while(count<
50)
{
boolean isPrime=
true;
for(
int i=
2;i<test;i++)
{
if (test%i==
0)
{
isPrime=
false;
break;
}
}
if (isPrime)
{
count++;
System.
out.println(
"第"+count+
"个素数为"+test);
}
test++;
}
}
}
输出前n(需指定)个素数
package mooc;
public class Ex4_1 {
public static void main(String[] args)
{
int[] primes=
new int[
50];
primes[
0]=
2;
int cnt=
1;
MAIN_LOOP:
for(
int x=
3;cnt<primes.length;x++)
{
for(
int i=
0;i<cnt;i++)
{
if(x%primes[i]==
0)
{
continue MAIN_LOOP;
}
}
primes[cnt++]=x;
}
for(
int k:primes)
{
System.
out.print(k+
" ");
}
System.
out.println();
}
}
计算第n个素数到第m个素数之间所有素数的和(不是所有数)
package mooc;
import java.util.Scanner;
public class Ex4_11 {
public static void main(String[] args){
Scanner
in=
new Scanner(System.
in);
int n=
in.nextInt();
int m=
in.nextInt();
in.close();
int sum=
0;
int count=
0;
int test=
2;
while(count<m)
{
boolean isPrime=
true;
for(
int i=
2;i<test;i++)
{
if(test%i==
0)
{
isPrime=
false;
break;
}
}
if (isPrime)
{
count++;
if(count>=n)
{
sum+=test;
}
}
test++;
}
System.
out.println(sum);
}
}