如何比较两个数组以找到共同的元素?

时间:2017-03-15 18:12:05

标签: java arrays

我试图找到一个数字x,其中x = y ^ 4 = z ^ 6 = 5k = 2l。有没有办法比较第四和第六功率数的数组,以找到最小的共同元素?

    int[] fourth = new int[1000];
    int[] sixth = new int[1000];
    for (int i = 1; i < 1000; i++) {
        if (i*i*i*i % 10 == 0) {
            int count = 0;
            fourth[count] = (i*i*i*i);
            count++;
        }
    }
    for (int i = 1; i < 1000; i++) {
        if (i*i*i*i*i*i % 10 == 0) {
            int count = 0;
            sixth[count] = (i*i*i*i*i*i);
            count++;
        }
    }

1 个答案:

答案 0 :(得分:0)

首先:i^4 % 10 == 0表示i % 10 == 0,因此您拥有10, 20, 30, ..., 990

for (int i = 10; i < 1000; i+=10){
    int count = 0;
    fourth[count] = (i^4);
    count++;
}

为了进一步改进,你可以简单地做一个数学技巧。

for (int i = 10; i < 1000; i+=10){
    double val = i^(4/6);
    if (val % 10 == 0 and 0<val<1000)
       system.out.println((val^(6/4)) + " is a number you are looking for!!!.");
}

您不需要迭代1到10,并且您不需要计算所有值。

修改

似乎你想要计算x = y^4 = z^6 = 5k = 2l,假设x,y,z,k,l是整数,x应该可以被10整除,它应该是某些整数的第4和第6次幂,这意味着某些整数的12次幂整数。

以下是您要查找的数字列表:

for (i = 10; i < 1000; i+=10){
    long long a = i ^ 12;
    System.out.println(a);
}