Я изучил алгоритм факторизации чисел в C++ и Java, теперь решил «перевести» его в JS. Вот мой код:Оценить число в Javascript
<!DOCTYPE HTML>
<html>
<head>
<title>Factorization</title>
<script>
function fact(num)
{
var b = 2;
while (num > b){
while(num%b==0){
num/=b;
return b;
}
b++;
if(num==b){
return b;
}
}
}
</script>
</head>
<body>
<form name="f1">
Enter the Number :<input type="number" name="txt1"><br>
<input type="button" value="Factorize" onclick="alert('The answer is ' + fact(txt1.value))">
</form>
</body>
</html>
Что не так? Он оповещает только 1-го кратного.
P/SA алгоритм работы в C++ является:
#include<iostream>
using namespace std;
int main(){
int a;
cin >> a;
int b=2;
while(a>b){
while(a%b==0){
a/=b;
cout << b << endl;
}
b++;
if(a==b){
cout << b << endl;
}
}
}
Вы вызываете 'return' заявление, когда будет найден первый фактор. Поэтому, естественно, программный контроль выходит из функции. Вместо этого сохраните факторы в массиве и верните весь массив в конце. –