初学者求助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 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+"为绝对质数");
}
}