This engine provides a live, empirical proof of the Factorial Popcount Formula: ρ₂(n) = n - v₂(n!). It calculates both the "Arithmetic Side" (Popcount of n) and the "Algebraic Side" (n - 2-adic valuation of n!) for each integer `n` starting from 1, and verifies that they are identical.
StartStop
Stopped.
n
Binary of n
ρ₂(n) [Arithmetic]
n! (truncated)
v₂(n!)
n - v₂(n!) [Algebraic]
Status
522
1000001010
3
478936053431746514247781636943...
519
522 - 519 = 3
Verified
521
1000001001
3
917502018068479912352072101424...
518
521 - 518 = 3
Verified
520
1000001000
2
176104034178211115614601171098...
518
520 - 518 = 2
Verified
519
1000000111
4
338661604188867530028079175189...
515
519 - 515 = 4
Verified
518
1000000110
3
652527175701093506797840414624...
515
518 - 515 = 3
Verified
517
1000000101
3
125970497239593341080664172707...
514
517 - 514 = 3
Verified
516
1000000100
2
243656667774842052380394918196...
514
516 - 514 = 2
Verified
515
1000000011
3
472202844524887698411618058519...
512
515 - 512 = 3
Verified
514
1000000010
2
916898727232791647401200113630...
512
514 - 512 = 2
Verified
513
1000000001
2
178384966387702655136420255570...
511
513 - 511 = 2
Verified
512
1000000000
1
347728979313260536328304591754...
511
512 - 511 = 1
Verified
511
111111111
9
679158162721211985016219905770...
502
511 - 502 = 9
Verified
510
111111110
8
132907663937614869866187848487...
502
510 - 502 = 8
Verified
509
111111101
8
260603262622774254639584016641...
501
509 - 501 = 8
Verified
508
111111100
7
511990692775587926600361525819...
501
508 - 501 = 7
Verified
507
111111011
8
100785569444013371378023922405...
499
507 - 499 = 8
Verified
506
111111010
7
198788105412255170370855862732...
499
506 - 499 = 7
Verified
505
111111001
7
392861868403666344606434511328...
498
505 - 498 = 7
Verified
504
111111000
6
777944293868646226943434675898...
498
504 - 498 = 6
Verified
503
111110111
8
154354026561239330742744975376...
495
503 - 495 = 8
Verified
502
111110110
7
306866852010416164498498957011...
495
502 - 495 = 7
Verified
501
111110101
7
611288549821546144419320631496...
494
501 - 494 = 7
Verified
500
111110100
6
122013682599111006870123878542...
494
500 - 494 = 6
Verified
499
111110011
7
244027365198222013740247757084...
492
499 - 492 = 7
Verified
498
111110010
6
489032795988420869218933380931...
492
498 - 492 = 6
Verified
497
111110001
6
981993566241808974335207592231...
491
497 - 491 = 6
Verified
496
111110000
5
197584218559720115560403942098...
491
496 - 491 = 5
Verified
495
111101111
8
398355279354274426533072463908...
487
495 - 487 = 8
Verified
494
111101110
7
804758140109645306127419119007...
487
494 - 487 = 7
Verified
493
111101101
7
162906506095069900025793343928...
486
493 - 486 = 7
Verified
492
111101100
6
330439160436247261715605160098...
486
492 - 486 = 6
Verified
491
111101011
7
671624309829770857145538943290...
484
491 - 484 = 7
Verified
490
111101010
6
136787028478568402677299173786...
484
490 - 484 = 6
Verified
489
111101001
6
279157200976670209545508517931...
483
489 - 483 = 6
Verified
488
111101000
5
570873621629182432608401877159...
483
488 - 483 = 5
Verified
487
111100111
7
116982299514176727993524974827...
480
487 - 480 = 7
Verified
486
111100110
6
240210060604058989719763808681...
480
486 - 480 = 6
Verified
485
111100101
6
494259383958969114649719770949...
479
485 - 479 = 6
Verified
484
111100100
5
101909151331746209206127787824...
479
484 - 479 = 5
Verified
483
111100011
6
210556097792864068607702040959...
477
483 - 477 = 6
Verified
482
111100010
5
435933949881706146185718511304...
477
482 - 477 = 5
Verified
481
111100001
5
904427281912253415323067450838...
476
481 - 476 = 5
Verified
480
111100000
4
188030619940177425223090946120...
476
480 - 476 = 4
Verified
479
111011111
8
391730458208702969214772804417...
471
479 - 471 = 8
Verified
478
111011110
7
817808889788523944080945311935...
471
478 - 471 = 7
Verified
477
111011101
7
171089725897180741439528307936...
470
477 - 470 = 7
Verified
476
111011100
6
358678670643984782892092888755...
470
476 - 470 = 6
Verified
475
111011011
7
753526618999968031285909430158...
468
475 - 468 = 7
Verified
474
111011010
6
158637182947361690797033564243...
468
474 - 468 = 6
Verified
473
111011001
6
334677601154771499571800768446...
467
473 - 467 = 6
Verified
472
111011000
5
707563638805013741166597819126...
467
472 - 467 = 5
Verified
471
111010111
7
149907550594282572281058859984...
464
471 - 464 = 7
Verified
470
111010110
6
318275054340302701233670615678...
464
470 - 464 = 6
Verified
469
111010101
6
677180966681495109007809820592...
463
469 - 463 = 6
Verified
468
111010100
5
144388265816949916632795270915...
463
468 - 463 = 5
Verified
467
111010011
6
308521935506303240668365963493...
461
467 - 461 = 6
Verified
466
111010010
5
660646542840049765885151956089...
461
466 - 461 = 5
Verified
465
111010001
5
141769644386276773795096986285...
460
465 - 460 = 5
Verified
464
111010000
4
304880955669412416763649432871...
460
464 - 460 = 4
Verified
463
111001111
7
657071025149595725783727226016...
456
463 - 456 = 7
Verified
462
111001110
6
141915988153260415936010200003...
456
462 - 456 = 6
Verified
461
111001101
6
307177463535195705489199567107...
455
461 - 455 = 6
Verified
460
111001100
5
666328554306281356809543529517...
455
460 - 455 = 5
Verified
459
111001011
6
144854033544843773219465984677...
453
459 - 453 = 6
Verified
458
111001010
5
315586129727328481959620881650...
453
458 - 453 = 5
Verified
457
111001001
5
689052684994166991178211531988...
452
457 - 452 = 5
Verified
456
111001000
4
150777392777717065903328562798...
452
456 - 452 = 4
Verified
455
111000111
6
330652177144116372595018778066...
449
455 - 449 = 6
Verified
454
111000110
5
726708081635420599109931380365...
449
454 - 449 = 5
Verified
453
111000101
5
160067859391061805971350524309...
448
453 - 448 = 5
Verified
452
111000100
4
353350682982476392872738464259...
448
452 - 448 = 4
Verified
451
111000011
5
781749298633797329364465628893...
446
451 - 446 = 5
Verified
450
111000010
4
173336873311263265934471314610...
446
450 - 446 = 4
Verified
449
111000001
4
385193051802807257632158476912...
445
449 - 445 = 4
Verified
448
111000000
3
857890983970617500294339592231...
445
448 - 445 = 3
Verified
447
110111111
8
191493523207727120601415087551...
439
447 - 439 = 8
Verified
446
110111110
7
428397143641447697094888339041...
439
446 - 439 = 7
Verified
445
110111101
7
960531712200555374652216006820...
438
445 - 438 = 7
Verified
444
110111100
6
215849822966416938124093484678...
438
444 - 438 = 6
Verified
443
110111011
7
486148249924362473252462803330...
436
443 - 436 = 7
Verified
442
110111010
6
109740011269607781772564966891...
436
442 - 436 = 6
Verified
441
110111001
6
248280568483275524372318929619...
435
441 - 435 = 6
Verified
440
110111000
5
562994486356633842114101881223...
435
440 - 435 = 5
Verified
439
110110111
7
127953292353780418662295882096...
432
439 - 432 = 7
Verified
438
110110110
6
291465358436857445699990619809...
432
438 - 432 = 6
Verified
437
110110101
6
665446023828441656849293652532...
431
437 - 431 = 6
Verified
436
110110100
5
152275977992778411178328066940...
431
436 - 431 = 5
Verified
435
110110011
6
349256830258666080684238685644...
429
435 - 429 = 6
Verified
434
110110010
5
802889264962450760193652150906...
429
434 - 429 = 5
Verified
433
110110001
5
184997526489043953961671002513...
428
433 - 428 = 5
Verified
432
110110000
4
427246019605182341712866056612...
428
432 - 428 = 4
Verified
431
110101111
7
988995415752736902113115871787...
424
431 - 424 = 7
Verified
430
110101110
6
229465293678129211627173056099...
424
430 - 424 = 6
Verified
429
110101101
6
533640217856114445644588502556...
423
429 - 423 = 6
Verified
428
110101100
5
124391659173919451199204779150...
423
428 - 423 = 5
Verified
427
110101011
6
290634717696073484110291540071...
421
427 - 421 = 6
Verified
426
110101010
5
680643366969727129063914613750...
421
426 - 421 = 5
Verified
425
110101001
5
159775438255804490390590284918...
420
425 - 420 = 5
Verified
424
110101000
4
375942207660716447977859493924...
420
424 - 420 = 4
Verified
423
110100111
6
886656150143199169759102580011...
417
423 - 417 = 6
Verified
422
110100110
5
209611383012576635876856401893...
417
422 - 417 = 5
Verified
421
110100101
5
496709438418428047101555454724...
416
421 - 416 = 5
Verified
420
110100100
4
117983239529317825914858777844...
416
420 - 416 = 4
Verified
419
110100011
5
280912475069804347416330423439...
414
419 - 414 = 5
Verified
418
110100010
4
670435501359914910301504590546...
414
418 - 414 = 4
Verified
417
110100001
4
160391268267922227344857557547...
413
417 - 413 = 4
Verified
416
110100000
3
384631338771995749028435389801...
413
416 - 413 = 3
Verified
415
110011111
7
924594564355759012087585071637...
408
415 - 408 = 7
Verified
414
110011110
6
222793870929098557129538571478...
408
414 - 408 = 6
Verified
413
110011101
6
538149446688643857800817805504...
407
413 - 407 = 6
Verified
412
110011100
5
130302529464562677433612059444...
407
412 - 407 = 5
Verified
411
110011011
6
316268275399423974353427328747...
405
411 - 405 = 6
Verified
410
110011010
5
769509185886676336626343865566...
405
410 - 405 = 5
Verified
409
110011001
5
187685167289433252835693625748...
404
409 - 404 = 5
Verified
408
110011000
4
458887939582966388351329158308...
404
408 - 404 = 4
Verified
407
110010111
6
112472534211511369693953225075...
401
407 - 401 = 6
Verified
406
110010110
5
276345292902976338314381388391...
401
406 - 401 = 5
Verified
405
110010101
5
680653430795508222449215242344...
400
405 - 400 = 5
Verified
404
110010100
4
168062575505063758629435862307...
400
404 - 400 = 4
Verified
403
110010011
5
415996474022435046112465005711...
398
403 - 398 = 5
Verified
402
110010010
4
103224931519214651640810175114...
398
402 - 398 = 4
Verified
401
110010001
4
256778436614961820002015360981...
397
401 - 397 = 4
Verified
400
110010000
3
640345228466238952623479703195...
397
400 - 397 = 3
Verified
399
110001111
6
160086307116559738155869925798...
393
399 - 393 = 6
Verified
398
110001110
5
401218814828470521693909588468...
393
398 - 393 = 5
Verified
397
110001101
5
100808747444339327058771253383...
392
397 - 392 = 5
Verified
396
110001100
4
253926315980703594606476708775...
392
396 - 392 = 4
Verified
395
110001011
5
641228070658342410622415931251...
390
395 - 390 = 5
Verified
394
110001010
4
162336220419833521676560995253...
390
394 - 390 = 4
Verified
393
110001001
4
412020864009729750448124353435...
389
393 - 389 = 4
Verified
392
110001000
3
104839914506292557365934949983...
389
392 - 389 = 3
Verified
391
110000111
5
267448761495644278994732015264...
386
391 - 386 = 5
Verified
390
110000110
4
684012177738220662390618964870...
386
390 - 386 = 4
Verified
389
110000101
4
175387737881595041638620247402...
385
389 - 385 = 4
Verified
388
110000100
3
450868220775308590330643309518...
385
388 - 385 = 3
Verified
387
110000011
4
116203149684357884105835904515...
383
387 - 383 = 4
Verified
386
110000010
3
300266536652087555829033345000...
383
386 - 383 = 3
Verified
385
110000001
3
777892582000226828572625246114...
382
385 - 382 = 3
Verified
384
110000000
2
202050021298760215213668895094...
382
384 - 382 = 2
Verified
383
101111111
8
526171930465521393785596080975...
375
383 - 375 = 8
Verified
382
101111110
7
137381705082381564957074694771...
375
382 - 375 = 7
Verified
381
101111101
7
359637971419847028683441609349...
374
381 - 374 = 7
Verified
380
101111100
6
943931683516658867935542281758...
374
380 - 374 = 6
Verified
379
101111011
7
248403074609647070509353232041...
372
379 - 372 = 7
Verified
378
101111010
6
655417083402762719022040190083...
372
378 - 372 = 6
Verified
377
101111001
6
173390762804963682280963013249...
371
377 - 371 = 6
Verified
376
101111000
5
459922447758524356182925764587...
371
376 - 371 = 5
Verified
375
101110111
7
122319799935777754303969618241...
368
375 - 368 = 7
Verified
374
101110110
6
326186133162074011477252315310...
368
374 - 368 = 6
Verified
373
101110101
6
872155436262229977211904586391...
367
373 - 367 = 6
Verified
372
101110100
5
233821832778077741879867181338...
367
372 - 367 = 5
Verified
371
101110011
6
628553313919563822257707476715...
365
371 - 365 = 6
Verified
370
101110010
5
169421378414976771498034360300...
365
370 - 365 = 5
Verified
369
101110001
5
457895617337775058102795568380...
364
369 - 364 = 5
Verified
368
101110000
4
124090953208069121437071969750...
364
368 - 364 = 4
Verified
367
101101111
7
337203677195840003905086874322...
360
367 - 360 = 7
Verified
366
101101110
6
918811109525449601921217641206...
360
366 - 360 = 6
Verified
365
101101101
6
251041286755587322929294437488...
359
365 - 359 = 6
Verified
364
101101100
5
687784347275581706655601198597...
359
364 - 359 = 5
Verified
363
101101011
6
188951743757027941388901428186...
357
363 - 357 = 6
Verified
362
101101010
5
520528219716330417049315229162...
357
362 - 357 = 5
Verified
361
101101001
5
143792325888489065483236251149...
356
361 - 356 = 5
Verified
360
101101000
4
398316692211881067820599033656...
356
360 - 356 = 4
Verified
359
101100111
6
110643525614411407727944176015...
353
359 - 353 = 6
Verified
358
101100110
5
308199235694739297292323610071...
353
358 - 353 = 5
Verified
357
101100101
5
860891719817707534336099469473...
352
357 - 352 = 5
Verified
356
101100100
4
241146140004960093651568478844...
352
356 - 352 = 4
Verified
355
101100011
5
677376797766741836099911457427...
350
355 - 350 = 5
Verified
354
101100010
4
190810365568096291859129988007...
350
354 - 350 = 4
Verified
353
101100001
4
539012332113266361183983016970...
349
353 - 349 = 4
Verified
352
101100000
3
152694711646817666057785557215...
349
352 - 349 = 3
Verified
351
101011111
7
433791794451186551300527151180...
344
351 - 344 = 7
Verified
350
101011110
6
123587405826548875014395199766...
344
350 - 344 = 6
Verified
349
101011101
6
353106873790139642898271999332...
343
349 - 343 = 6
Verified
348
101011100
5
101176754667661788796066475453...
343
348 - 343 = 5
Verified
347
101011011
6
290737800769143071253064584636...
341
347 - 341 = 6
Verified
346
101011010
5
837861097317415190931021857742...
341
346 - 341 = 5
Verified
345
101011001
5
242156386507923465587000536919...
340
345 - 340 = 5
Verified
344
101011000
4
701902569588183958223189962086...
340
344 - 340 = 4
Verified
343
101010111
6
204041444647727894832322663397...
337
343 - 337 = 6
Verified
342
101010110
5
594873016465678993680241001158...
337
342 - 337 = 5
Verified
341
101010101
5
173939478498736547859719590981...
336
341 - 336 = 5
Verified
340
101010100
4
510086447210371108093019328392...
336
340 - 336 = 4
Verified
339
101010011
5
150025425650109149439123331880...
334
339 - 334 = 5
Verified
338
101010010
4
442552878023920794805673545369...
334
338 - 334 = 4
Verified
337
101010001
4
130932804149088992546057261943...
333
337 - 333 = 4
Verified
336
101010000
3
388524641391955467495718878170...
333
336 - 333 = 3
Verified
335
101001111
6
115632333747605793897535380408...
329
335 - 329 = 6
Verified
334
101001110
5
345171145515241175813538448979...
329
334 - 329 = 5
Verified
333
101001101
5
103344654345880591560939655382...
328
333 - 328 = 5
Verified
332
101001100
4
310344307344986761444263229378...
328
332 - 328 = 4
Verified
331
101001011
5
934772010075261329651395269211...
326
331 - 326 = 5
Verified
330
101001010
4
282408462258387108656010655350...
326
330 - 326 = 4
Verified
329
101001001
4
855783218964809420169729258639...
325
329 - 325 = 4
Verified
328
101001000
3
260116479928513501571346279221...
325
328 - 325 = 3
Verified
327
101000111
5
793038048562541163327275241529...
322
327 - 322 = 5
Verified
326
101000110
4
242519280905975890925772245116...
322
326 - 322 = 4
Verified
325
101000101
4
743924174558208254373534494221...
321
325 - 321 = 4
Verified
324
101000100
3
228899746017910232114933690529...
321
324 - 321 = 3
Verified
323
101000011
4
706480697586142691712758304103...
319
323 - 319 = 4
Verified
322
101000010
3
218724674175276375143268824799...
319
322 - 319 = 3
Verified
321
101000001
3
679269174457380047028785170185...
318
321 - 318 = 3
Verified
320
101000000
2
211610334721925248295571704107...
318
320 - 318 = 2
Verified
319
100111111
7
661282296006016400923661575336...
312
319 - 312 = 7
Verified
318
100111110
6
207298525393735548878890775967...
312
318 - 312 = 6
Verified
317
100111101
6
651882155326212417858147094237...
311
317 - 311 = 6
Verified
316
100111100
5
205641058462527576611402868844...
311
316 - 311 = 5
Verified
315
100111011
6
650762843235846761428490091280...
309
315 - 309 = 6
Verified
314
100111010
5
206591378805030717913806378184...
309
314 - 309 = 5
Verified
313
100111001
5
657934327404556426477090376383...
308
313 - 308 = 5
Verified
312
100111000
4
210202660512637835935172644211...
308
312 - 308 = 4
Verified
311
100110111
6
673726476002044345946066167346...
305
311 - 305 = 6
Verified
310
100110110
5
216632307396155738246323526477...
305
310 - 305 = 5
Verified
309
100110101
5
698813894826308833052656537025...
304
309 - 304 = 5
Verified
308
100110100
4
226153364021459169272704380914...
304
308 - 304 = 4
Verified
307
100110011
5
734264168900841458677611626345...
302
307 - 302 = 5
Verified
306
100110010
4
239173996384638911621371865259...
302
306 - 302 = 4
Verified
305
100110001
4
781614367270061802684221781892...
301
305 - 301 = 4
Verified
304
100110000
3
256267005662315345142367797341...
301
304 - 301 = 3
Verified
303
100101111
6
842983571257616266915683543887...
297
303 - 297 = 6
Verified
302
100101110
5
278212399754988866968872456728...
297
302 - 297 = 5
Verified
301
100101101
5
921233111771486314466465088504...
296
301 - 296 = 5
Verified
300
100101100
4
306057512216440636035370461297...
296
300 - 296 = 4
Verified
299
100101011
5
102019170738813545345123487099...
294
299 - 294 = 5
Verified
298
100101010
4
341201239929142292124158819729...
294
298 - 294 = 4
Verified
297
100101001
4
114497060378906809437637187828...
293
297 - 293 = 4
Verified
296
100101000
3
385511987807767035143559554978...
293
296 - 293 = 3
Verified
295
100100111
5
130240536421542917278229579384...
290
295 - 290 = 5
Verified
294
100100110
4
441493343801840397553320608083...
290
294 - 290 = 4
Verified
293
100100101
4
150167804014231427739224696627...
289
293 - 289 = 4
Verified
292
100100100
3
512518102437649924024657667669...
289
292 - 289 = 3
Verified
291
100100011
4
175519898095085590419403310845...
287
291 - 287 = 4
Verified
290
100100010
3
603161161838782097661179762356...
287
290 - 287 = 3
Verified
289
100100001
3
207986607530614516434889573226...
286
289 - 286 = 3
Verified
288
100100000
2
719676842666486216037680184173...
286
288 - 286 = 2
Verified
287
100011111
6
249887792592529936124194508393...
281
287 - 281 = 6
Verified
286
100011110
5
870689172796271554439702119838...
281
286 - 281 = 5
Verified
285
100011101
5
304436773704990053999895846097...
280
285 - 280 = 5
Verified
284
100011100
4
106819920598242124210489770560...
280
284 - 280 = 4
Verified
283
100011011
5
376126480979725789473555530142...
278
283 - 278 = 5
Verified
282
100011010
4
132906883738419006881115028318...
278
282 - 278 = 4
Verified
281
100011001
4
471301006164606407379840525953...
277
281 - 277 = 4
Verified
280
100011000
3
167722777994521853160085596424...
277
280 - 277 = 3
Verified
279
100010111
5
599009921409006618428877130088...
274
279 - 274 = 5
Verified
278
100010110
4
214698896562367963594579616519...
274
278 - 274 = 4
Verified
277
100010101
4
772298189073266056095610131364...
273
277 - 273 = 4
Verified
276
100010100
3
278808010495763919168090300131...
273
276 - 273 = 3
Verified
275
100010011
4
101017395107160840278293587004...
271
275 - 271 = 4
Verified
274
100010010
3
367335982207857601011976680015...
271
274 - 271 = 3
Verified
273
100010001
3
134064227083159708398531635042...
270
273 - 270 = 3
Verified
272
100010000
2
491077754883368895232716611875...
270
272 - 270 = 2
Verified
271
100001111
5
180543292236532682070851695542...
266
271 - 266 = 5
Verified
270
100001110
4
666211410466910265944102197573...
266
270 - 266 = 4
Verified
269
100001101
4
246744966839596394794111925027...
265
269 - 265 = 4
Verified
268
100001100
3
917267534719689199978111245454...
265
268 - 265 = 3
Verified
267
100001011
4
342264005492421343275414643826...
263
267 - 263 = 4
Verified
266
100001010
3
128188766102030465646222713043...
263
266 - 263 = 3
Verified
265
100001001
3
481912654518911524985799673096...
262
265 - 262 = 3
Verified
264
100001000
2
181853831893928877353131952111...
262
264 - 262 = 2
Verified
263
100000111
4
688840272325488171792166485271...
259
263 - 259 = 4
Verified
262
100000110
3
261916453355698924635804747251...
259
262 - 259 = 3
Verified
261
100000101
3
999681119678240170365666974242...
258
261 - 258 = 3
Verified
260
100000100
2
383019586083616923511749798560...
258
260 - 258 = 2
Verified
259
100000011
3
147315225416775739812211460984...
256
259 - 256 = 3
Verified
258
100000010
2
568784654118825250240198691060...
256
258 - 256 = 2
Verified
257
100000001
2
220459168263110562108604143822...
255
257 - 255 = 2
Verified
256
100000000
1
857817775342842654119082271681...
255
256 - 255 = 1
Verified
255
11111111
8
335085068493297911765266512375...
247
255 - 247 = 8
Verified
254
11111110
7
131405909213058004613830004853...
247
254 - 247 = 7
Verified
253
11111101
7
517346099264007892180433089972...
246
253 - 246 = 7
Verified
252
11111100
6
204484624215022882284756162044...
246
252 - 246 = 6
Verified
251
11111011
7
811446921488186040812524452558...
244
251 - 244 = 7
Verified
250
11111010
6
323285626090910773232081455202...
244
250 - 244 = 6
Verified
249
11111001
6
129314250436364309292832582080...
243
249 - 243 = 6
Verified
248
11111000
5
519334339101864695955150932052...
243
248 - 243 = 5
Verified
247
11110111
7
209409007702364796756109246795...
240
247 - 240 = 7
Verified
246
11110110
6
847809747782853428162385614555...
240
246 - 240 = 6
Verified
245
11110101
6
344638108854818466732677079087...
239
245 - 239 = 6
Verified
244
11110100
5
140668615859109578258235542484...
239
244 - 239 = 5
Verified
243
11110011
6
576510720734055648599325993789...
237
243 - 237 = 6
Verified
242
11110010
5
237247210178623723703426334892...
237
242 - 237 = 5
Verified
241
11110001
5
980360372638941007038951797078...
236
241 - 236 = 5
Verified
240
11110000
4
406788536364705812049357592148...
236
240 - 236 = 4
Verified
239
11101111
7
169495223485294088353898996728...
232
239 - 232 = 7
Verified
238
11101110
6
709185035503322545413803333592...
232
238 - 232 = 6
Verified
237
11101101
6
297976905673664935047816526719...
231
237 - 231 = 6
Verified
236
11101100
5
125728652182980985252243260219...
231
236 - 231 = 5
Verified
235
11101011
6
532748526199071971407810424657...
229
235 - 229 = 6
Verified
234
11101010
5
226701500510243392088429967939...
229
234 - 229 = 5
Verified
233
11101001
5
968809831240356376446281914271...
228
233 - 228 = 5
Verified
232
11101000
4
415798210832770977015571637026...
228
232 - 228 = 4
Verified
231
11100111
6
179223366738263352161884326304...
225
231 - 225 = 6
Verified
230
11100110
5
775858730468672520181317429889...
225
230 - 225 = 5
Verified
229
11100101
5
337329882812466313122311926038...
224
229 - 224 = 5
Verified
228
11100100
4
147305625682299700053411321414...
224
228 - 224 = 4
Verified
227
11100011
5
646077305624121491462330357080...
222
227 - 222 = 5
Verified
226
11100010
4
284615553138379511657414254220...
222
226 - 222 = 4
Verified
225
11100001
4
125936085459459960910360289478...
221
225 - 221 = 4
Verified
224
11100000
3
559715935375377604046045731013...
221
224 - 221 = 3
Verified
223
11011111
7
249873185435436430377698987059...
216
223 - 216 = 7
Verified
222
11011110
6
112050755800644139182824657874...
216
222 - 216 = 6
Verified
221
11011101
6
504733134237135762084795756190...
215
221 - 215 = 6
Verified
220
11011100
5
228386033591464145739726586511...
215
220 - 215 = 5
Verified
219
11011011
6
103811833450665520790784812050...
213
219 - 213 = 6
Verified
218
11011010
5
474026636761029775300387269637...
213
218 - 213 = 5
Verified
217
11011001
5
217443411358270539128618013595...
212
217 - 212 = 5
Verified
216
11011000
4
100204337031461077939455305804...
212
216 - 212 = 4
Verified
215
11010111
6
463908967738245731201181971316...
209
215 - 209 = 6
Verified
214
11010110
5
215771612901509642419154405263...
209
214 - 209 = 5
Verified
213
11010101
5
100827856496032543186520750123...
208
213 - 208 = 5
Verified
212
11010100
4
473370218291232597119815728277...
208
212 - 208 = 4
Verified
211
11010011
5
223287838816619149584818739753...
206
211 - 206 = 5
Verified
210
11010010
4
105823620292236563784274284243...
206
210 - 206 = 4
Verified
209
11010001
4
503922001391602684687020401158...
205
209 - 205 = 4
Verified
208
11010000
3
241111005450527600328717895291...
205
208 - 205 = 3
Verified
207
11001111
6
115918752620445961696498988120...
201
207 - 201 = 6
Verified
206
11001110
5
559993974011816240079705256622...
201
206 - 201 = 5
Verified
205
11001101
5
271841734957192349553254978942...
200
205 - 200 = 5
Verified
204
11001100
4
132605724369362121733295111679...
200
204 - 200 = 4
Verified
203
11001011
5
650028060634128047712230939605...
198
203 - 198 = 5
Verified
202
11001010
4
320210867307452240252330512120...
198
202 - 198 = 4
Verified
201
11001001
4
158520231340322891214025006000...
197
201 - 197 = 4
Verified
200
11001000
3
788657867364790503552363213932...
197
200 - 197 = 3
Verified
199
11000111
5
394328933682395251776181606966...
194
199 - 194 = 5
Verified
198
11000110
4
198155243056480026018181712043...
194
198 - 194 = 4
Verified
197
11000101
4
100078405584080821221303894971...
193
197 - 193 = 4
Verified
196
11000100
3
508012211086704676250273578534...
193
196 - 193 = 3
Verified
195
11000011
4
259189903615665651148098764558...
191
195 - 191 = 4
Verified
194
11000010
3
132917899290084949306717315158...
191
194 - 191 = 3
Verified
193
11000001
3
685143810773633759312975851331...
190
193 - 190 = 3
Verified
192
11000000
2
354996793146960497053355363383...
190
192 - 190 = 2
Verified
191
10111111
7
184894163097375258881955918429...
184
191 - 184 = 7
Verified
190
10111110
6
968032267525524915612334651461...
184
190 - 184 = 6
Verified
189
10111101
6
509490667118697324006491921821...
183
189 - 183 = 6
Verified
188
10111100
5
269571781544284298416133291969...
183
188 - 183 = 5
Verified
187
10111011
6
143389245502278882136241112749...
181
187 - 181 = 6
Verified
186
10111010
5
766787409103095626397011298126...
181
186 - 181 = 5
Verified
185
10111001
5
412251295216718078708070590390...
180
185 - 180 = 5
Verified
184
10111000
4
222838537954982745247605724535...
180
184 - 180 = 4
Verified
183
10110111
6
121107901062490622417177024204...
177
183 - 177 = 6
Verified
182
10110110
5
661791809084648209929929094010...
177
182 - 177 = 5
Verified
181
10110101
5
363621873123433082379081919786...
176
181 - 176 = 5
Verified
180
10110100
4
200896062499134299656951336898...
176
180 - 176 = 4
Verified
179
10110011
5
111608923610630166476084076054...
174
179 - 174 = 5
Verified
178
10110010
4
623513539724190874168067463992...
174
178 - 174 = 4
Verified
177
10110001
4
350288505463028580993296328085...
173
177 - 173 = 4
Verified
176
10110000
3
197903110431089593781523349201...
173
176 - 173 = 3
Verified
175
10101111
6
112444949108573632830410993864...
169
175 - 169 = 6
Verified
174
10101110
5
642542566334706473316634250652...
169
174 - 169 = 5
Verified
173
10101101
5
369277336973969237538295546352...
168
173 - 168 = 5
Verified
172
10101100
4
213455108077438865629072570145...
168
172 - 168 = 4
Verified
171
10101011
5
124101807021766782342484052410...
166
171 - 166 = 5
Verified
170
10101010
4
725741561530799896739672821112...
166
170 - 166 = 4
Verified
169
10101001
4
426906800900470527493925188889...
165
169 - 165 = 4
Verified
168
10101000
3
252607574497319838753801886917...
165
168 - 165 = 3
Verified
167
10100111
5
150361651486499904020120170784...
162
167 - 162 = 5
Verified
166
10100110
4
900369170577843736647426172359...
162
166 - 162 = 4
Verified
165
10100101
4
542391066613158877498449501421...
161
165 - 161 = 4
Verified
164
10100100
3
328721858553429622726333031164...
161
164 - 161 = 3
Verified
163
10100011
4
200440157654530257759959165344...
159
163 - 159 = 4
Verified
162
10100010
3
122969421873944943411017892849...
159
162 - 159 = 3
Verified
161
10100001
3
759070505394721872907517857093...
158
161 - 158 = 3
Verified
160
10100000
2
471472363599206132240694321176...
158
160 - 158 = 2
Verified
159
10011111
6
294670227249503832650433950735...
153
159 - 153 = 6
Verified
158
10011110
5
185327186949373479654360975305...
153
158 - 153 = 5
Verified
157
10011101
5
117295687942641442819215807155...
152
157 - 152 = 5
Verified
156
10011100
4
747106292628289444708380937293...
152
156 - 152 = 4
Verified
155
10011011
5
478914290146339387633577523906...
150
155 - 150 = 5
Verified
154
10011010
4
308976961384735088795856467036...
150
154 - 150 = 4
Verified
153
10011001
4
200634390509568239477828874698...
149
153 - 149 = 4
Verified
152
10011000
3
131133588568345254560672467123...
149
152 - 149 = 3
Verified
151
10010111
5
862720977423324043162318862654...
146
151 - 146 = 5
Verified
150
10010110
4
571338395644585459047893286526...
146
150 - 146 = 4
Verified
149
10010101
4
380892263763056972698595524350...
145
149 - 145 = 4
Verified
148
10010100
3
255632391787286558858117801577...
145
148 - 145 = 3
Verified
147
10010011
4
172724589045463891120349865930...
143
147 - 143 = 4
Verified
146
10010010
3
117499720439091082394795827163...
143
146 - 143 = 3
Verified
145
10010001
3
804792605747199194484902925779...
142
145 - 142 = 3
Verified
144
10010000
2
555029383273930478955105466055...
142
144 - 142 = 2
Verified
143
10001111
5
385437071718007277052156573649...
138
143 - 138 = 5
Verified
142
10001110
4
269536413788816277658850750803...
138
142 - 138 = 4
Verified
141
10001101
4
189814375907617096942852641411...
137
141 - 137 = 4
Verified
140
10001100
3
134620124757175246058760738589...
137
140 - 137 = 3
Verified
139
10001011
4
961572319694108900419719561352...
135
139 - 135 = 4
Verified
138
10001010
3
691778647261948849222819828311...
135
138 - 135 = 3
Verified
137
10001001
3
501288874827499166103492629211...
134
137 - 134 = 3
Verified
136
10001000
2
365904288195254865768972722051...
134
136 - 134 = 2
Verified
135
10000111
4
269047270731805048359538766214...
131
135 - 131 = 4
Verified
134
10000110
3
199294274616151887673732419418...
131
134 - 131 = 3
Verified
133
10000101
3
148727070609068572890845089118...
130
133 - 130 = 3
Verified
132
10000100
2
111824865119600430744996307607...
130
132 - 130 = 2
Verified
131
10000011
3
847158069087882051098456875815...
128
131 - 128 = 3
Verified
130
10000010
2
646685548922047367250730439553...
128
130 - 128 = 2
Verified
129
10000001
2
497450422247728744039023415041...
127
129 - 127 = 2
Verified
128
10000000
1
385620482362580421735677065923...
127
128 - 127 = 1
Verified
127
1111111
7
301266001845765954480997707752...
120
127 - 120 = 7
Verified
126
1111110
6
237217324288004688567714730513...
120
126 - 120 = 6
Verified
125
1111101
6
188267717688892609974376770249...
119
125 - 119 = 6
Verified
124
1111100
5
150614174151114087979501416199...
119
124 - 119 = 5
Verified
123
1111011
6
121463043670253296757662432418...
117
123 - 117 = 6
Verified
122
1111010
5
987504420083360136241157987144...
117
122 - 117 = 5
Verified
121
1111001
5
809429852527344373968162284544...
116
121 - 116 = 5
Verified
120
1111000
4
668950291344912705758811805409...
116
120 - 116 = 4
Verified
119
1110111
6
557458576120760588132343171174...
113
119 - 113 = 6
Verified
118
1110110
5
468452584975429065657431236280...
113
118 - 113 = 5
Verified
117
1110101
5
396993716080872089540195962949...
112
117 - 112 = 5
Verified
116
1110100
4
339310868445189820119825609358...
112
116 - 112 = 4
Verified
115
1110011
5
292509369349301569068815180481...
110
115 - 110 = 5
Verified
114
1110010
4
254355973347218755712013200418...
110
114 - 110 = 4
Verified
113
1110001
4
223119274865981364659660702121...
109
113 - 109 = 4
Verified
112
1110000
3
197450685722107402353682037275...
109
112 - 109 = 3
Verified
111
1101111
6
176295255109024466387216104710...
105
111 - 105 = 6
Verified
110
1101110
5
158824554152274294042537031270...
105
110 - 105 = 5
Verified
109
1101101
5
144385958320249358220488210246...
104
109 - 104 = 5
Verified
108
1101100
4
132464181945182897449989183712...
104
108 - 104 = 4
Verified
107
1101011
5
122652020319613793935175170103...
102
107 - 102 = 5
Verified
106
1101010
4
114628056373470835453434738414...
102
106 - 102 = 4
Verified
105
1101001
4
108139675824029090050410130580...
101
105 - 101 = 4
Verified
104
1101000
3
102990167451456276238485838647...
101
104 - 101 = 3
Verified
103
1100111
5
990290071648618040754671525458...
98
103 - 98 = 5
Verified
102
1100110
4
961446671503512660926865558697...
98
102 - 98 = 4
Verified
101
1100101
4
942594775983835942085162312448...
97
101 - 97 = 4
Verified
100
1100100
3
933262154439441526816992388562...
97
100 - 97 = 3
Verified
99
1100011
4
933262154439441526816992388562...
95
99 - 95 = 4
Verified
98
1100010
3
942689044888324774562618574305...
95
98 - 95 = 3
Verified
97
1100001
3
961927596824821198533284259495...
94
97 - 94 = 3
Verified
96
1100000
2
991677934870949689209571401541...
94
96 - 94 = 2
Verified
95
1011111
6
103299784882390592625997020993...
89
95 - 89 = 6
Verified
94
1011110
5
108736615665674308027365285256...
89
94 - 89 = 5
Verified
93
1011101
5
115677250708164157475920516230...
88
93 - 88 = 5
Verified
92
1011100
4
124384140546413072554753243258...
88
92 - 88 = 4
Verified
91
1011011
5
135200152767840296255166568759...
86
91 - 86 = 5
Verified
90
1011010
4
148571596448176149730952273362...
86
90 - 86 = 4
Verified
89
1011001
4
165079551609084610812169192624...
85
89 - 85 = 4
Verified
88
1011000
3
185482642257398439114796845645...
85
88 - 85 = 3
Verified
87
1010111
5
210775729837952771721360051869...
82
87 - 82 = 5
Verified
86
1010110
4
242270953836727323817655232034...
82
86 - 82 = 4
Verified
85
1010101
4
281710411438055027694947944226...
81
85 - 81 = 4
Verified
84
1010100
3
331424013456535326699938757913...
81
84 - 81 = 3
Verified
83
1010011
4
394552396972065865118974711801...
79
83 - 79 = 4
Verified
82
1010010
3
475364333701284174842138206989...
79
82 - 79 = 3
Verified
81
1010001
3
579712602074736798587973423157...
78
81 - 78 = 3
Verified
80
1010000
2
715694570462638022948115337231...
78
80 - 78 = 2
Verified
79
1001111
5
894618213078297528685144171539...
74
79 - 74 = 5
Verified
78
1001110
4
113242811782062978314575211587...
74
78 - 74 = 4
Verified
77
1001101
4
145183092028285869634070784086...
73
77 - 73 = 4
Verified
76
1001100
3
188549470166605025498793226086...
73
76 - 73 = 3
Verified
75
1001011
4
248091408113953980919464771165...
71
75 - 71 = 4
Verified
74
1001010
3
330788544151938641225953028221...
71
74 - 71 = 3
Verified
73
1001001
3
447011546151268434089125713812...
70
73 - 70 = 3
Verified
72
1001000
2
612344583768860868615240703852...
70
72 - 70 = 2
Verified
71
1000111
4
850478588567862317521167644239...
67
71 - 67 = 4
Verified
70
1000110
3
119785716699698917960727837216...
67
70 - 67 = 3
Verified
69
1000101
3
171122452428141311372468338881...
66
69 - 66 = 3
Verified
68
1000100
2
248003554243683059960099041856...
66
68 - 66 = 2
Verified
67
1000011
3
364711109181886852882498590966...
64
67 - 64 = 3
Verified
66
1000010
2
544344939077443064003729240247...
64
66 - 64 = 2
Verified
65
1000001
2
824765059208247066672317030678...
63
65 - 63 = 2
Verified
64
1000000
1
126886932185884164103433389335...
63
64 - 63 = 1
Verified
63
111111
6
198260831540444006411614670836...
57
63 - 57 = 6
Verified
62
111110
5
314699732603879375256531223549...
57
62 - 57 = 5
Verified
61
111101
5
507580213877224798800856812176...
56
61 - 56 = 5
Verified
60
111100
4
832098711274139014427634118322...
56
60 - 56 = 4
Verified
59
111011
5
138683118545689835737939019720...
54
59 - 54 = 5
Verified
58
111010
4
235056133128287857182947491051...
54
58 - 54 = 4
Verified
57
111001
4
405269195048772167556806019054...
53
57 - 53 = 4
Verified
56
111000
3
710998587804863451854045647463...
53
56 - 53 = 3
Verified
55
110111
5
126964033536582759259651008475...
50
55 - 50 = 5
Verified
54
110110
4
230843697339241380472092742683...
50
54 - 50 = 4
Verified
53
110101
4
427488328406002556429801375338...
49
53 - 49 = 4
Verified
52
110100
3
806581751709438785716606368564...
49
52 - 49 = 3
Verified
51
110011
4
155111875328738228022424301646...
47
51 - 47 = 4
Verified
50
110010
3
304140932017133780436126081660...
47
50 - 47 = 3
Verified
49
110001
3
608281864034267560872252163321...
46
49 - 46 = 3
Verified
48
110000
2
124139155925360726708622890473...
46
48 - 46 = 2
Verified
47
101111
5
258623241511168180642964355153...
42
47 - 42 = 5
Verified
46
101110
4
550262215981208894985030542880...
42
46 - 42 = 4
Verified
45
101101
4
119622220865480194561963161495...
41
45 - 41 = 4
Verified
44
101100
3
265827157478844876804362581101...
41
44 - 41 = 3
Verified
43
101011
4
604152630633738356373551320685...
39
43 - 39 = 4
Verified
42
101010
3
140500611775287989854314260624...
39
42 - 39 = 3
Verified
41
101001
3
334525266131638071081700620534...
38
41 - 38 = 3
Verified
40
101000
2
815915283247897734345611269596...
38
40 - 38 = 2
Verified
39
100111
4
203978820811974433586402817399...
35
39 - 35 = 4
Verified
38
100110
3
523022617466601111760007224100...
35
38 - 35 = 3
Verified
37
100101
3
137637530912263450463159795815...
34
37 - 34 = 3
Verified
36
100100
2
371993326789901217467999448150...
34
36 - 34 = 2
Verified
35
100011
3
103331479663861449296666513375...
32
35 - 32 = 3
Verified
34
100010
2
295232799039604140847618609643...
32
34 - 32 = 2
Verified
33
100001
2
868331761881188649551819440128...
31
33 - 31 = 2
Verified
32
100000
1
263130836933693530167218012160...
31
32 - 31 = 1
Verified
31
11111
5
822283865417792281772556288000...
26
31 - 26 = 5
Verified
30
11110
4
265252859812191058636308480000...
26
30 - 26 = 4
Verified
29
11101
4
884176199373970195454361600000...
25
29 - 25 = 4
Verified
28
11100
3
304888344611713860501504000000
25
28 - 25 = 3
Verified
27
11011
4
10888869450418352160768000000
23
27 - 23 = 4
Verified
26
11010
3
403291461126605635584000000
23
26 - 23 = 3
Verified
25
11001
3
15511210043330985984000000
22
25 - 22 = 3
Verified
24
11000
2
620448401733239439360000
22
24 - 22 = 2
Verified
23
10111
4
25852016738884976640000
19
23 - 19 = 4
Verified
22
10110
3
1124000727777607680000
19
22 - 19 = 3
Verified
21
10101
3
51090942171709440000
18
21 - 18 = 3
Verified
20
10100
2
2432902008176640000
18
20 - 18 = 2
Verified
19
10011
3
121645100408832000
16
19 - 16 = 3
Verified
18
10010
2
6402373705728000
16
18 - 16 = 2
Verified
17
10001
2
355687428096000
15
17 - 15 = 2
Verified
16
10000
1
20922789888000
15
16 - 15 = 1
Verified
15
1111
4
1307674368000
11
15 - 11 = 4
Verified
14
1110
3
87178291200
11
14 - 11 = 3
Verified
13
1101
3
6227020800
10
13 - 10 = 3
Verified
12
1100
2
479001600
10
12 - 10 = 2
Verified
11
1011
3
39916800
8
11 - 8 = 3
Verified
10
1010
2
3628800
8
10 - 8 = 2
Verified
9
1001
2
362880
7
9 - 7 = 2
Verified
8
1000
1
40320
7
8 - 7 = 1
Verified
7
111
3
5040
4
7 - 4 = 3
Verified
6
110
2
720
4
6 - 4 = 2
Verified
5
101
2
120
3
5 - 3 = 2
Verified
4
100
1
24
3
4 - 3 = 1
Verified
3
11
2
6
1
3 - 1 = 2
Verified
2
10
1
2
1
2 - 1 = 1
Verified
1
1
1
1
0
1 - 0 = 1
Verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Factorial Popcount Formula - Live Verification</title>
<style>
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
background-color: #f4f6f8;
color: #2d3436;
line-height: 1.6;
margin: 0;
padding: 20px;
}
.container {
max-width: 1200px;
margin: 0 auto;
background: #fff;
padding: 25px;
border-radius: 12px;
box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}
h1, h2 {
color: #1a2533;
border-bottom: 2px solid #0984e3;
padding-bottom: 10px;
}
.description {
color: #555;
background-color: #fafbfd;
border-left: 4px solid #0984e3;
padding: 15px;
margin-bottom: 25px;
font-size: 1.1em;
}
.controls {
text-align: center;
margin-bottom: 20px;
display: flex;
gap: 15px;
justify-content: center;
}
#startBtn, #stopBtn {
padding: 12px 25px;
font-size: 1.2em;
font-weight: bold;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s;
width: 150px;
}
#startBtn { background-color: #00b894; }
#stopBtn { background-color: #d63031; }
button:disabled { background-color: #b2bec3; cursor: not-allowed; }
#status {
font-family: monospace;
text-align: center;
font-size: 1.2em;
padding: 10px;
background-color: #dfe6e9;
border-radius: 5px;
margin-bottom: 20px;
font-weight: bold;
}
#resultsTable {
width: 100%;
border-collapse: collapse;
margin-top: 10px;
font-size: 0.9em;
table-layout: fixed;
}
#resultsTable th, #resultsTable td {
border: 1px solid #dee2e6;
padding: 8px 12px;
text-align: center;
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
}
#resultsTable th {
background-color: #2d3436;
color: white;
position: sticky;
top: 0;
}
#resultsTable td {
word-wrap: break-word;
}
.verified {
color: #00b894;
font-weight: bold;
}
.failed {
color: white;
background-color: #d63031 !important;
font-weight: bold;
}
tbody tr:nth-child(even) {
background-color: #f8f9fa;
}
</style>
</head>
<body>
<div class="container">
<h1>Factorial Popcount Formula Live Verifier</h1>
<div class="description">
This engine provides a live, empirical proof of the <strong>Factorial Popcount Formula: ρ₂(n) = n - v₂(n!)</strong>. It calculates both the "Arithmetic Side" (Popcount of n) and the "Algebraic Side" (n - 2-adic valuation of n!) for each integer `n` starting from 1, and verifies that they are identical.
</div>
<div class="controls">
<button id="startBtn">Start</button>
<button id="stopBtn" disabled>Stop</button>
</div>
<div id="status">Press Start to begin verification.</div>
<table id="resultsTable">
<thead>
<tr>
<th>n</th>
<th>Binary of n</th>
<th>ρ₂(n) [Arithmetic]</th>
<th>n! (truncated)</th>
<th>v₂(n!)</th>
<th>n - v₂(n!) [Algebraic]</th>
<th>Status</th>
</tr>
</thead>
<tbody id="resultsBody"></tbody>
</table>
</div>
<script>
// --- DOM Elements ---
const startBtn = document.getElementById('startBtn');
const stopBtn = document.getElementById('stopBtn');
const statusDiv = document.getElementById('status');
const resultsBody = document.getElementById('resultsBody');
// --- State Variables ---
let isRunning = false;
let currentN = 1n;
let factorial = 1n; // Cache for n!
let v2Factorial = 0n; // Cache for v₂(n!)
// --- Core Structural Functions (using BigInt for all calculations) ---
// Counts the number of 1s in a BigInt's binary representation
function getPopcount(n) {
let count = 0;
while (n > 0n) {
n &= (n - 1n);
count++;
}
return BigInt(count);
}
// Calculates v₂(n) - the number of times n is divisible by 2
function getV2(n) {
if (n === 0n) return 0n; // Convention
let count = 0n;
// This is much faster than repeated division
while ((n & 1n) === 0n && n !== 0n) {
n >>= 1n;
count++;
}
return count;
}
// --- Main Verification Loop ---
function runVerificationStep() {
if (!isRunning) {
statusDiv.textContent = "Stopped.";
return;
}
// 1. ARITHMETIC SIDE
const binaryN = currentN.toString(2);
const popcount = getPopcount(currentN);
// 2. ALGEBRAIC SIDE (Iterative Calculation for efficiency)
// Update factorial cache: (n)! = n * (n-1)!
if (currentN > 1n) {
factorial *= currentN;
}
// Update v₂(n!) cache: v₂(n!) = v₂((n-1)!) + v₂(n)
v2Factorial += getV2(currentN);
const algebraicSide = currentN - v2Factorial;
// 3. VERIFICATION
const isVerified = (popcount === algebraicSide);
const statusText = isVerified ? "Verified" : "FAILED!";
// 4. DISPLAY RESULTS
const newRow = resultsBody.insertRow(0); // Insert at the top for visibility
newRow.innerHTML = `
<td>${currentN}</td>
<td>${binaryN}</td>
<td><strong>${popcount}</strong></td>
<td>${factorial.toString().length > 30 ? factorial.toString().slice(0, 30) + '...' : factorial}</td>
<td>${v2Factorial}</td>
<td>${currentN} - ${v2Factorial} = <strong>${algebraicSide}</strong></td>
<td class="${isVerified ? 'verified' : 'failed'}">${statusText}</td>
`;
// Update status for the next run
statusDiv.textContent = `Processing n = ${currentN + 1n}...`;
// Check for failure
if (!isVerified) {
console.error(`Verification FAILED at n = ${currentN}`);
stopVerification();
return;
}
// Prepare for the next iteration
currentN++;
// This is the key to a non-freezing UI. It yields to the browser's event loop.
setTimeout(runVerificationStep, 0);
}
// --- Control Functions ---
function startVerification() {
if (isRunning) return;
isRunning = true;
// Reset state
currentN = 1n;
factorial = 1n;
v2Factorial = 0n;
resultsBody.innerHTML = "";
// Update UI
startBtn.disabled = true;
stopBtn.disabled = false;
statusDiv.textContent = "Starting...";
// Kick off the loop
runVerificationStep();
}
function stopVerification() {
isRunning = false;
startBtn.disabled = false;
stopBtn.disabled = true;
}
// --- Event Listeners ---
startBtn.addEventListener('click', startVerification);
stopBtn.addEventListener('click', stopVerification);
</script>
</body>
</html>