跪求~~JAVA求1到100的全部素数

跪求~~JAVA求1到100的全部素数
2025-03-01 15:25:14
推荐回答(5个)
回答1:

public class Test{
int m=0;
for(int i=1;i<=100;i++){
for(int int j=1;j<=i/2;j++){
if(i%j == 0)
m++;
}
if(m == 2){
System.out.print(i+",");
}
m=0;
}
}

这样不知道可不可以 我没有运行。你试试看吧!

回答2:

100以内的质数共有25个,这些质数我们经常用到,可以用下面的两种办法记住它们。
� 一、规律记忆法
� 首先记住2和3,而2和3两个质数的乘积为6。100以内的质数,一般都在6的倍数前、后的位置上。如5、7、11、13、19、23、29、31、37、41、43……只有25、35、49、55、65、77、85、91、95这几个6的倍数前后位置上的数不是质数,而这几个数都是5或7的倍数。由此可知:100以内6的倍数前、后位置上的两个数,只要不是5或7的倍数,就一定是质数。根据这个特点可以记住100以内的质数。
� 二、分类记忆法
� 我们可以把100以内的质数分为五类记忆。
�第一类:20以内的质数,共8个:2、3、5、7、11、13、17、19。
�第二类:个位数字是3或9,十位数字相差3的质数,共6个:23、29、53、59、83、89。
�第三类:个位数字是1或7,十位数字相差3的质数,共4个:31、37、61、67。
�第四类:个位数字是1、3或7,十位数字相差3的质数,共5个:41、43、47、71、73。
�第五类:还有2个持数是79和97。
� 一种简便的试商方法
� 试商是计算除数是三位数除法的关键,当除数接近整百数时,可以用“四舍五入法”来试商,然而当除数十位上是4、5、6不接近整百数时,试商就比较困难,有时需要多次调商。为了帮助同学们解决这个困难,下面介绍一种简便的试商方法。
� 当除数十位上是4时,舍去尾数看做整百数。用整百数做除数得出的商减1后去试商。
� 命名如1944÷243,除数十位上是4,把243看做200,1944÷200商9,用8(9-1)去试商正合适。
� 当除数十位上是5、6时,舍去尾数向百位进1,把除数看做整百数,用整百数做除数得出的商加1后去试商。
� 例如:1524÷254除数十位上是5,把254看做300,1524÷300商5,用6(5+1)去试商正合适。
� 运用上面这种试商方法,有的可以直接得出准确商,有的只需调商一次就行了。同学们不试在计算除法时试一试。

回答3:

不错啊!
那我也改进一下
我们都知道 素数就是质数,从2开始之后就不会再有偶数了
所以我也改进了一下 提高点效率

public static void main(String[] ars)
{
int crc = 0;
crc = Hello. update_crc(data, para[0] - 4, para[2] * 3 + 4);
// crc = Hello.fillData( data, para );
System.out.println("..."+Integer.toHexString( crc ));

printAllSuSHu(101);
}

public static boolean isSuSHu(int n)
{
for (int i = 2; i < n/2; i++)
{
if (n % i == 0)
return false;
}
return true;
}
public static void printAllSuSHu(int x)
{
System.out.println(2);//2是素数
for (int i = 3; i <= x; i++)
{
if( i%2 == 0 )continue;//偶数除外了!
if (isSuSHu(i))
System.out.println(i);
}
}

回答4:

1、先写个判断某数是否为素数的小方法
public static boolean isSuSHu(int n) {
for (int i = 2; i < n; i++) {
if (n % i == 0)
return false;
}
return true;
}

2、然后利用此方法,写个输出某个值之内的所有素数:

public static void printAllSuSHu(int x) {
for (int i = 1; i <= x; i++) {
if (isSuSHu(i))
System.out.println(i);
}
}

这个方法将输出 所有1~x内的所有素数;而不仅仅是1到100之间。

你要输出1到100那么 那么就是:printAllSuSHu(100) 就OK了

回答5:

public class test{
public test(int n){
print(n);
}
public boolean isPrimeNumber(int k){
for(int i=2; i <= k/2; i++){//这里的i只要循环到k/2就可以了,不需要到k。
if(k%i == 0)
return false;
}
return true;
}

public void print(int n){
for(int i=1; i<=n; i++){
if(isPrimeNumber(i))
System.out.print(i + "\t");
}
}
public static void main(String args[]){
new test(101);
}
}