Javascript 用JS求素数序列
我必须得到一个素数序列。但是我的代码不起作用。怎么可能修复它Javascript 用JS求素数序列,javascript,Javascript,我必须得到一个素数序列。但是我的代码不起作用。怎么可能修复它 var num1 = parseInt(prompt('Enter a number')); var num2 = parseInt(prompt('Enter a number')); var num3 = 0; function primeSeq(num1, num2) { var b = 1; var c = ''; if (num1 > num2) { num3 = num2; num2 = num1; num1 =
var num1 = parseInt(prompt('Enter a number'));
var num2 = parseInt(prompt('Enter a number'));
var num3 = 0;
function primeSeq(num1, num2) {
var b = 1;
var c = '';
if (num1 > num2) {
num3 = num2;
num2 = num1;
num1 = num3;
}
for (var i = num1; i < num2; i++) {
for (var j = 2; j < i; j++) {
if (i % j == 0) {
b++;
}
if (b <= 1) {
c += i + ' ';
}
}
}
return c;
}
alert(primeSeq(num1, num2));
var num1=parseInt(提示(“输入一个数字”);
var num2=parseInt(提示(“输入一个数字”);
var num3=0;
函数primeSeq(num1,num2){
var b=1;
var c=“”;
如果(num1>num2){
num3=num2;
num2=num1;
num1=num3;
}
对于(变量i=num1;i 如果(b我猜你想要这样的东西
var num1 = parseInt(prompt('Enter a number'));
var num2 = parseInt(prompt('Enter a number'));
var num3 = 0;
if (num1 > num2) {
num3 = num2;
num2 = num1;
num1 = num3;
}
function primeSeq(num1, num2) {
var b;
var c = '';
for (var i = num1; i < num2; i++) {
b = 1;
for (var j = 2; j < i; j++) {
if (i % j === 0) {
b++;
}
}
if (b === 1) {
c += i + ' ';
}
}
return c;
}
alert(primeSeq(num1, num2));
var num1=parseInt(提示(“输入一个数字”);
var num2=parseInt(提示(“输入一个数字”);
var num3=0;
如果(num1>num2){
num3=num2;
num2=num1;
num1=num3;
}
函数primeSeq(num1,num2){
var b;
var c=“”;
对于(变量i=num1;i
因此,简而言之,b
应该在每个新的主候选(i
循环)上重置为1,并且b
的检查应该在内部(j
)循环之外
请注意,还有更多的优化算法。我想你想要这样的算法
var num1 = parseInt(prompt('Enter a number'));
var num2 = parseInt(prompt('Enter a number'));
var num3 = 0;
if (num1 > num2) {
num3 = num2;
num2 = num1;
num1 = num3;
}
function primeSeq(num1, num2) {
var b;
var c = '';
for (var i = num1; i < num2; i++) {
b = 1;
for (var j = 2; j < i; j++) {
if (i % j === 0) {
b++;
}
}
if (b === 1) {
c += i + ' ';
}
}
return c;
}
alert(primeSeq(num1, num2));
var num1=parseInt(提示(“输入一个数字”);
var num2=parseInt(提示(“输入一个数字”);
var num3=0;
如果(num1>num2){
num3=num2;
num2=num1;
num1=num3;
}
函数primeSeq(num1,num2){
var b;
var c=“”;
对于(变量i=num1;i
因此,简而言之,b
应该在每个新的主候选(i
循环)上重置为1,并且b
的检查应该在内部(j
)循环之外
请注意,还有更多的优化算法。这里有更优化的算法:
function primeSeq(num1, num2) {
var primes = [];
var isPrime;
var j;
var results = [];
for (var i = 2; i < num2; i++) {
isPrime = true;
j = 0;
while (j < primes.length) {
if (i % primes[j] === 0) {
isPrime = false;
break;
}
j++;
}
if (isPrime) {
primes.push(i);
if (i >= num1) {
results.push(i);
}
}
}
return results.join(' ');
}
因此,这将使其更加简化。这里有一个更加优化的算法:
function primeSeq(num1, num2) {
var primes = [];
var isPrime;
var j;
var results = [];
for (var i = 2; i < num2; i++) {
isPrime = true;
j = 0;
while (j < primes.length) {
if (i % primes[j] === 0) {
isPrime = false;
break;
}
j++;
}
if (isPrime) {
primes.push(i);
if (i >= num1) {
results.push(i);
}
}
}
return results.join(' ');
}
所以这会使它更简单一些。试试这个
<input ng-model="range" type="number" placeholder="Enter the range">
<button ng-click="findPrimeNumber(range)">
$scope.findPrimeNumber=function(range){
var tempArray=[];
for(var i=0;i<=range;i++){
tempArray.push(i)
}
var primenumbers= tempArray.filter((number) => {
for (var i = 2; i <= Math.sqrt($scope.range); i++) {
if (number % i === 0) return false;
}
return true;
});
console.log(primenumbers);
}
$scope.findPrimeNumber=函数(范围){
var tempArray=[];
对于(var i=0;i{
对于(var i=2;i试试这个
<input ng-model="range" type="number" placeholder="Enter the range">
<button ng-click="findPrimeNumber(range)">
$scope.findPrimeNumber=function(range){
var tempArray=[];
for(var i=0;i<=range;i++){
tempArray.push(i)
}
var primenumbers= tempArray.filter((number) => {
for (var i = 2; i <= Math.sqrt($scope.range); i++) {
if (number % i === 0) return false;
}
return true;
});
console.log(primenumbers);
}
$scope.findPrimeNumber=函数(范围){
var tempArray=[];
对于(var i=0;i{
对于(var i=2;i来说,更简单的方法是使用筛选系统,如果一个数可被另一个素数整除,则它不是素数。您可以编写如下函数:
function primes(max) {
let primes = [2];
for (let i = 3; i <= max; i++) {
let found = true;
for (let j = 0; j < primes.length; j++) {
if (i % primes[j] == 0) found = false;
}
if (found) primes.push(i);
}
return primes;
}
函数素数(最大值){
设素数=[2];
对于(设i=3;i更简单的方法是使用筛子系统,如果一个数可被另一个素数整除,则它不是素数。您可以编写如下函数:
function primes(max) {
let primes = [2];
for (let i = 3; i <= max; i++) {
let found = true;
for (let j = 0; j < primes.length; j++) {
if (i % primes[j] == 0) found = false;
}
if (found) primes.push(i);
}
return primes;
}
函数素数(最大值){
设素数=[2];
对于(设i=3;对于J的循环,i也可以限制为J