public class Alone4_5{ public static void main(String[] args){ for (int n=26,j=2; n%j!=0;j++){
if (j==(n-1))break; System.out.println("n是素数"); } System.out.println("n是合数"); } } 这是我写的代码 貌似也可以判断是素数还是合数,不过总觉得有点疑惑,谁可以把程序的流程说一下
我的代码写的不对。。谁可以告诉我在 for语句中怎么添加if 语句??
public class Alone4_5{ public static void main(String[] args){ double n=26; double m= Math.sqrt(n)+1; for (int i=2; i<=m;i++){ if (n%i==0)break; System.out.println("n是素数"); } System.out.println("n是合数"); } }
//求100以内素数简便的方法 out:for( int i = 3; i <= 100; i++ ) { for( int j = 2; j < i; j++ ) { if( i % j == 0 ) { continue out; } } System.out.println(i); } }
public static void main(String[] args){
for (int n=26,j=2; n%j!=0;j++){
if (j==(n-1))break;
System.out.println("n是素数");
}
System.out.println("n是合数");
}
} 这是我写的代码 貌似也可以判断是素数还是合数,不过总觉得有点疑惑,谁可以把程序的流程说一下
public static void main(String[] args){
double n=26;
double m= Math.sqrt(n)+1;
for (int i=2; i<=m;i++){ if (n%i==0)break;
System.out.println("n是素数");
}
System.out.println("n是合数");
}
}
out:for( int i = 3; i <= 100; i++ )
{
for( int j = 2; j < i; j++ )
{
if( i % j == 0 )
{
continue out;
}
}
System.out.println(i);
}
}
/*
打印3-200之间的素数
2008年3月3日
*/
class IsPrime
{
public static void main(String[] args)
{
int j;
int i;
int counter=0;
final int N=300;
//int k=(int)Math.sqrt(j);
for(j=3;j<N;j++)
{
boolean isPrime=true;
for(i=2;i<=(int)Math.sqrt(j);i++)
{
if (j%i==0)
{
isPrime=false;
break;
}
}
if(isPrime==true)
{
System.out.print(" "+j);
counter++;
if(counter%10==0)System.out.println();//每10个换行
}
}
System.out.println("在 0到"+N+"之间共有 "+counter+" 个素数");
}
}
本文出处:http://blog.csdn.net/zhuche110/archive/2008/03/30/2230326.aspx
public static void main(String[] args){
boolean b=true;
for(int n=27,j=2;n%j!=0;j++){
if(j==Math.sqrt(j))break;
b=true;
}
if(b==false){
System.out.println("n是素数");
}
else{
System.out.println("n是合数");
}
}
}我自己的代码,大家应该可以看出我是什么程度,但我无论输入什么数字都显示合数,我想思路还是对了 ,就是语法有问题,请各位指导一下 谢谢
一起进步吧 ^_^
按照LZ的意思写个看看
public class Alone4_5
{
public static void main(String[] args)
{
int n=xxx;//xxx为任意整数
int k=(int)(Math.sqrt(n)+1);//将Math.sqrt(n)+1强制转化为int型并赋给k
for(int i=2;i<=n;i++)
{
if(n%i==0&&n!=2)//如果整除且不为n不为2,打印结果并且退出循环.
{
System.out.println(n+"是合数");
break;
}
if(i==k||n==2)//如果n为2或者i已经达到k这个值,还没有退出循环,那么肯定为素数,打印结果,并且退出循环
{
System.out.println(n+"是素数");
break;
}
}
}
}
由于是从2开始循环,对2的判定比较麻烦,以上的例子还是有点为了结果而写
按下面的写法可能会好一点
public class Alone4_5
{
public static void main(String[] args)
{
int n=xxx;//xxx为任意整数
int k=(int)(Math.sqrt(n)+1);//将Math.sqrt(n)+1强制转化为int型并赋给k
if(n==2) {System.out.println(n+"是素数");//首先判定是否为2,不是2则转入else
else{
for(int i=2;i<n;i++)
{
if(n%i==0)//如果整除且不为n不为2,打印结果并且退出循环.
{
System.out.println(n+"是合数");
break;
}
if(i==k)//如果i已经达到k这个值,还没有退出循环,那么肯定为素数,打印结果,并且退出循环
{
System.out.println(n+"是素数");
break;
}
}
}
}
}