2017-03-15 15 views
0

私はx = y^4 = z^6 = 5k = 2lの数値xを見つけようとしています。最小の共通要素を見つけるために4番目と6番目の電源番号の配列を比較する方法はありますか?2つの配列を比較して共通の要素を見つける方法は?

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++; 
     } 
    } 
+0

'千^ 6'' int'に合うことができるよりもかなり大きくなっています。あなたの配列の上端はガゲージでいっぱいになるでしょう。それらを 'long []'に変更したいかもしれません。 – azurefrog

+0

@azurefrog視覚的にあいまいな変数名のために残念です – CraigR8806

答えて

0

まず最初:i^4 % 10 == 0i % 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を繰り返す必要はなく、すべての値を計算する必要はありません。

EDIT:

x,y,z,k,lは整数であり、xは10で割り切れるである必要があり、それはの12乗を意味し、いくつかの整数の第四及び第六の電力べきであると仮定すると、あなたがx = y^4 = z^6 = 5k = 2lを計算したいようですいくつかの整数。ここで

は、あなたが探している番号のリストは以下のとおりです。

for (i = 10; i < 1000; i+=10){ 
    long long a = i^12; 
    System.out.println(a); 
} 
関連する問題