katoikia-app/web-ui/web-react/node_modules/miller-rabin/bin/miller-rabin

30 lines
599 B
JavaScript
Executable File

#!/usr/bin/env node
var bn = require('bn.js');
var fs = require('fs');
var mr = require('../').create();
var num = '';
if (process.argv[2]) {
num += fs.readFileSync(process.argv[2]);
start(num);
} else {
process.stdin.on('data', function(chunk) {
num += chunk.toString().replace(/[^0-9a-f]/gi, '');
});
process.stdin.once('end', function() {
start(num);
});
}
function start(text) {
var num = new bn(text, 16);
var divisor = mr.getDivisor(num);
if (!divisor)
process.exit(1);
if (divisor.cmpn(1) === 0)
process.exit(0);
console.log(divisor.toString(16));
}