// 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:
// 每位数字都加上5,然后用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,
// 请编写一个函数,传入原文,返回密文。
// 返回值是 密文
function encipher(num){
var q = (parseInt(num/1000)+5)%10;
var b = (parseInt(num%1000/100)+5)%10;
var s = (parseInt(num%100/10)+5)%10;
var g = (num%10+5)%10;
var x = q;
q = g;
g = x;
x = b;
b = s;
s = x;
return ''+q+b+s+g;
}
var n1 = encipher(3921);
console.log(n1);
var n2 = encipher(5947);
console.log(n2);
console.log('-----------------华丽的分割线--------------');
// 编写函数实现99乘法表和表格的结合
function table99(n){
var tab = '<table border="">';
for(var i=1;i<=n;i++){
tab += '<tr>'
for(var j=1;j<=i;j++){
tab += '<td>'+j+'x'+i+'='+j*i+'</td>';
}
tab += '</tr>';
}
tab += '</table>';
return tab;
}
var biao1 = table99(9);
document.write(biao1);
var biao2 = table99(5);
document.write(biao2);
console.log('-----------------华丽的分割线--------------');
// 编写函数实现 打印 指定区间的(例如100-200之间)的所有素数
// 素数/质数:除1和自身以外没有其他的因数。除了1和它本身以外不再有其他因数的自然数
// 只能被 1 和 自身 整除,其他数字都不能将其整除
// 提示:循环嵌套,break语句
function PrimeNumber(num1,num2){
console.log(num1,num2);
var min = num1>num2?num2:num1;
var max = num1>num2?num1:num2;
console.log(min,max);
// 控制循环所有需要验证是否为素质的数字,每循环一次的循环变量都是需要验证的数字
for(var i=min;i<=max;i++){ // 100
// 101
// 102
// 103
// 104
// 105
// 106
// 控制验证外层循环的数字是否为数字,从 2到比外层循环的数字-1的数字区间验证
for(var j=2;j<i;j++){ // 2
// 2 3 4 5 6 7 8 9 ..... 99 100 101
// 2
// 2 3 4 5 6 7 8 9 ..... 99 100 101 102 103
// 2
// 2 3
// 2
// 验证当前i的值是否为素数,如果i%j==0只要成立,就说明不是
if(i%j==0){
// 跳出循环,跳出的是内层循环,
// 因为只要有一个数字验证成功,就说明不是,后面的数字没有必要验证了
break;
}
}
// 判断当前的i是否为素数,条件成立就是素数
// 因为只有当这个数字是素数,我们内层循环变量的值在循环终止后才会和当前的i相等
if(j===i){
// 打印素数
console.log(i+' 是 素数/质数');
}
}
}
PrimeNumber(100,200);
PrimeNumber(20,50);
function PrimeNumber2(num1,num2){
console.log(num1,num2);
var min = num1>num2?num2:num1;
var max = num1>num2?num1:num2;
console.log(min,max);
// 控制循环所有需要验证是否为素质的数字,每循环一次的循环变量都是需要验证的数字
for(var i=min;i<=max;i++){
// 假设需要验证的每一个数字都是素数,在每个数字验证之前先声明一个变量
// 变量赋值为true,如果等验证之后,falg变量的值还是true,就说明这个数字是素数
// 相当于定义了一个开关
var flag = true;
// 控制验证外层循环的数字是否为数字,从 2到比外层循环的数字-1的数字区间验证
for(var j=2;j<i;j++){
// 验证当前i的值是否为素数,如果i%j==0只要成立,就说明不是
if(i%j==0){
// 改变开关的值
flag = false;
// 跳出内层循环
break;
}
}
// 验证flag变量的值如果为true,当前的i就是素数
if(flag){
console.log(i+'是素数/质数')
}
}
}
PrimeNumber2(100,200);