首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

菜鸟java

2013-06-25 
初学者求助java我写了两个java的程序都有错误,是求绝对质数的,就是它的数字任意对换后仍为质数,求各位帮帮

初学者求助java
我写了两个java的程序都有错误,是求绝对质数的,就是它的数字任意对换后仍为质数,求各位帮帮忙,看看是哪里要改的

class  AbsolutePrimeNumber
{
public static void main(String[] args) 
{
int m,n;
for(int i = 3;i<100;i++)
{
m = i/10;
n = i%10;
n = n*10 + m;
for(int j = 2;j<i/2;j++)
{
if ((i%j!=0)||(n%j!=0))
{
System.out.println(i);
}
else
System.out.println();
}
}

}
}


第二个是用函数的
class  AbsolutePrimeNumber
{
public boolean Prime(int i)
{
int j;
for(;j<i;j++)
{
if(i%j==0)
return false;
else
return true;
}
}
public int change(int i)
{
int m;
m=(i%10)*10+(i/10);
return m;
}
public static void main(String[] args) 
{
for(int i = 2;2<100;i++)
if (Prime(i) ||(Prime(i)&&Prime(change(i)) ) )
{
}

}
}
[解决办法]
public static void main(String[] args) {
        for (int i = 3; i < 100; i++) {
            boolean result = true;
            for (int j = 2; j <= i / 2; j++) {
                if (i % j == 0) {
                    result = false;
                    break;
                }
            }
            if (result) {
                System.out.println(i);
            }
        }
    }
[解决办法]

引用:
package test;

public class Test1 {
public static void main(String[] args) 
{
int m,n;
    for(int i = 3;i<100;i++)
    {
    int k=0,t=0,l=0;
    m = i/10;
        n = i%10;
……

刚才那个错了,没有考虑到i和n的被除数范围,比如13和31,按照刚才的写法的话,13肯定是质数,但是i=31的时候,n=13,这个时候j=14>13,n%13得到0,就不能得出31也是质数的结论了。下面是我修改之后的:


package test;

public class Help1 {
public static void main(String[] args) 
{
    for(int i = 11;i<51;i++)
    {
    int k=0,t=0,l=0,m=0,n=0;
    m = i/10;
        n = i%10;
        n = n*10 + m;
        m=0;
        for(int j = 2;j<i/2;j++)
        {
        k=i%j;
        t=n%j;
        m=m+1;
        if(k!=0&&t!=0)
        l=l+1;
        }
        if(l==m)
        { l=0;
             m=0;  
         for(int j = 2;j<n/2;j++)
         {
         k=i%j;
         t=n%j;
         l=l+1;
         if(k!=0&&t!=0)
         m=m+1;
         }
        if(l==m)
        System.out.println(i+"为绝对质数!\n"+n+"为绝对质数!");
        }
    }
}
}

[解决办法]
美女  第二个

public class AbsolutePrimeNumber2 {
public boolean Prime(int i) {
int j = 2;
boolean flag = false;
for (j = 2; j < i / 2; j++) {
if (i % j == 0)
break;
}
if (j >= i / 2) {
flag = true;
}
return flag;
}

public int change(int i) {
int m;
m = (i % 10) * 10 + (i / 10);
return m;
}

public static void main(String[] args) {
AbsolutePrimeNumber2 apn = new AbsolutePrimeNumber2();
for (int i = 2; i < 100; i++) {
if(apn.Prime(i)&&apn.Prime(apn.change(i))){
System.out.println(i+"为绝对质数");
}
}

热点排行