30 lines
		
	
	
		
			599 B
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			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));
 | |
| }
 |