JAVA:求1到100素数
发布网友
发布时间:2022-04-22 23:14
我来回答
共5个回答
热心网友
时间:2023-09-08 06:37
public class Test{
public static void main(String []arg){
prime(100);
}
// 什么是质数,合数,约数?
// “素数”,又称“质数”,是指:
// 除1和其自身之外,没有其它约数的正整数
// 如 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,...
// 2是最小的质数,也是唯一的偶质数
// 质数有无数多个
// 与素数相对的,有“合数”:
// 除1和其自身之外,仍有其它约数的正整数
// 规定:1和0既不是质数,也不是合数
// 一个数除了1和它本身不再有别的约数,
// 这样的数叫做质数,也叫素数。20以内
// 的质数有:2、3、5、7、11、13、17、19
// 一个数除了1和它本身还有别的约数,这样
// 的数叫做合数。1和0不是质数也不是合数。20
// 以内的合数有:4、6、8、9、10、12、14、15、16、18、20。
// 数a能被数b整除,a就是b的倍数,b就是a的约数。例如:15÷5=3,
// 那么15是5的倍数,5是15的约数。约数与倍数是相互的,
// 不能单独说15是倍数,5是约数。在讨论质数、合数、约数、
// 倍数都指自然数(0除外)。
public int prime(int num) {// 能求无限大的质数//但如果所求的范围太大,计算的时间需要很久
long is = System.currentTimeMillis();
int n, m, i = 0;
label1: for (n = 2; n <= num; n++) {
for (m = 2; m <= n / 2; m++) {
if (n % m == 0)
continue label1;
}
i++;
// System.out.println("第" + i + "个素数是:" + n);
}
long ie = System.currentTimeMillis();
System.out.println("time=" + (ie - is));
return i;
}}
热心网友
时间:2023-09-08 06:37
//测试通过
public class testprime
{
public static void main(String[] args)
{ int i=2; //i 即为所求素数
System.out.println("i= " +i);
for(i=3; i<=100; i=i+2){
boolean f = true;
Label:
for(int j=2;j<i;j++){
if(i%j==0){ //if(true)时,i为非素数
f=false;
break Label; //加了Label貌似只是起到提高效率
}
}
if(f){//当f=true时,i为素数。
System.out.println("i= " +i);
}
}
}
}
热心网友
时间:2023-09-08 06:38
改成这个就对了
public class TestaPro
{
public static void main(String[] args)
{
int i=2; //i 即为所求素数
System.out.println("i= " +i);
for(i=3; i<=100; i=i+2){
boolean f = true;
for(int j=2;j<i;j++){
if(i%j==0){
f=false;
break;
}
}
if(f){
System.out.println("i= " +i);
}
}
}
}
热心网友
时间:2023-09-08 06:38
public class testprime
{
public static void main(String[] args)
{
int i=2; //i 即为所求素数
System.out.println("i= " +i);
for(i=3; i<=100; i=i+2){
boolean f = true;
for(int j=2;j<i;j++){
if(i%j==0){
f=false;
break;
}
}
if(!f)
{
System.out.println("i= " +i);
continue;
}
}
}
}
热心网友
时间:2023-09-08 06:39
没有分