私はJavaコードをJavaScriptに変換するのに苦労しています。そのためには、例えば、私はをpublic static int primesolutionにfunction primesolutionに変換しています。私はそれを変換する正しい軌道にいるかどうかについてはあまり考えていません。私はと静かになっています。public static void main(String [] args)。この関数をJavascriptに変換する方法。どんな助けも高く評価されます。JavaScriptにJavaコードを書く方法
import java.lang.Math;
public class EvaluateDivisors {
public static void main(String[] args) {
try {
long a = Long.parseLong(args[0]);
long b = Long.parseLong(args[1]);
int k = Integer.parseInt(args[2]);
if (a <= 1 || b <= a) {
error("Error: must have 1 < A < B");
}
if (k <= 0 || k % 2 == 0) {
error("Error: K must be a positive odd number");
}
System.out.println(solution(a, b, k));
} catch (IndexOutOfBoundsException e) {
error("Usage: EvaluateDivisors A B K");
} catch (NumberFormatException e) {
error("Error: arguments must be integers");
}
}
private static int solution(long a, long b, int k) {
if (prime(k)) {
return primeSolution(a, b, k);
}
int result = 0;
for (long n = (long) Math.sqrt(a); n*n <= b; n++) {
int divisors = 3;
for (long m = 2; m < n && divisors <= k; m++) {
if (n*n % m == 0) {
divisors += 2;
}
}
if (divisors == k) {
result++;
}
}
return result;
}
private static int primeSolution(long a, long b, int k) {
int result = 0;
int n = 2;
while (Math.pow(n, k - 1) < a) {
n++;
}
while (Math.pow(n, k - 1) <= b) {
if (prime(n++)) {
result++;
}
}
return result;
}
private static boolean prime(int n) {
for (int m = 2; m <= Math.sqrt(n); m++) {
if (n % m == 0) {
return false;
}
}
return true;
}
private static void error(String message) {
System.err.println(message);
System.exit(1);
}
}
私はあなたが(それがHTMLをロードした後にその内容を実行します)文書負荷のイベントリスナーを使用する必要がありますJavaScriptのに
function EvaluateDivisors {
function main(String[] args) {
try {
long a = Long.parseLong(args[0]);
long b = Long.parseLong(args[1]);
int k = Integer.parseInt(args[2]);
if (a <= 1 || b <= a) {
error("Error: must have 1 < A < B");
}
if (k <= 0 || k % 2 == 0) {
error("Error: K must be a positive odd number");
}
System.out.println(solution(a, b, k));
} catch (IndexOutOfBoundsException e) {
error("Usage: EvaluateDivisors A B K");
} catch (NumberFormatException e) {
error("Error: arguments must be integers");
}
}
function solution(long a, long b, int k) {
if (prime(k)) {
return primeSolution(a, b, k);
}
int result = 0;
for (long n = (long) Math.sqrt(a); n*n <= b; n++) {
int divisors = 3;
for (long m = 2; m < n && divisors <= k; m++) {
if (n*n % m == 0) {
divisors += 2;
}
}
if (divisors == k) {
result++;
}
}
return result;
}
function primeSolution(long a, long b, int k) {
int result = 0;
int n = 2;
while (Math.pow(n, k - 1) < a) {
n++;
}
while (Math.pow(n, k - 1) <= b) {
if (prime(n++)) {
result++;
}
}
return result;
}
function prime(int n) {
for (int m = 2; m <= Math.sqrt(n); m++) {
if (n % m == 0) {
return false;
}
}
return true;
}
function error(String message) {
console.log(message);
System.exit(1);
}
}