@@ -27,9 +27,9 @@ pub(crate) struct Barrett {
27
27
impl Barrett {
28
28
/// # Arguments
29
29
/// * `m` `1 <= m`
30
- /// (Note: `m <= 2^31` should also hold, which is undocumented in the original library.
31
- /// See the [pull reqeust commment](https://github.com/rust-lang-ja/ac-library-rs/pull/3#discussion_r484661007)
32
- /// for more details.)
30
+ /// (Note: `m <= 2^31` should also hold, which is undocumented in the original library.
31
+ /// See the [pull reqeust commment](https://github.com/rust-lang-ja/ac-library-rs/pull/3#discussion_r484661007)
32
+ /// for more details.)
33
33
pub ( crate ) fn new ( m : u32 ) -> Barrett {
34
34
Barrett {
35
35
_m : m,
@@ -208,7 +208,7 @@ pub(crate) fn primitive_root(m: i32) -> i32 {
208
208
while x % 2 == 0 {
209
209
x /= 2 ;
210
210
}
211
- for i in ( 3 ..std :: i32:: MAX ) . step_by ( 2 ) {
211
+ for i in ( 3 ..i32:: MAX ) . step_by ( 2 ) {
212
212
if i as i64 * i as i64 > x as i64 {
213
213
break ;
214
214
}
@@ -328,55 +328,49 @@ mod tests {
328
328
assert_eq ! ( pow_mod( 0 , 0 , 3 ) , 1 ) ;
329
329
assert_eq ! ( pow_mod( 0 , 0 , 723 ) , 1 ) ;
330
330
assert_eq ! ( pow_mod( 0 , 0 , 998244353 ) , 1 ) ;
331
- assert_eq ! ( pow_mod( 0 , 0 , i32 :: max_value ( ) ) , 1 ) ;
331
+ assert_eq ! ( pow_mod( 0 , 0 , i32 :: MAX ) , 1 ) ;
332
332
333
333
assert_eq ! ( pow_mod( 0 , 1 , 1 ) , 0 ) ;
334
334
assert_eq ! ( pow_mod( 0 , 1 , 3 ) , 0 ) ;
335
335
assert_eq ! ( pow_mod( 0 , 1 , 723 ) , 0 ) ;
336
336
assert_eq ! ( pow_mod( 0 , 1 , 998244353 ) , 0 ) ;
337
- assert_eq ! ( pow_mod( 0 , 1 , i32 :: max_value ( ) ) , 0 ) ;
337
+ assert_eq ! ( pow_mod( 0 , 1 , i32 :: MAX ) , 0 ) ;
338
338
339
- assert_eq ! ( pow_mod( 0 , i64 :: max_value ( ) , 1 ) , 0 ) ;
340
- assert_eq ! ( pow_mod( 0 , i64 :: max_value ( ) , 3 ) , 0 ) ;
341
- assert_eq ! ( pow_mod( 0 , i64 :: max_value ( ) , 723 ) , 0 ) ;
342
- assert_eq ! ( pow_mod( 0 , i64 :: max_value ( ) , 998244353 ) , 0 ) ;
343
- assert_eq ! ( pow_mod( 0 , i64 :: max_value ( ) , i32 :: max_value ( ) ) , 0 ) ;
339
+ assert_eq ! ( pow_mod( 0 , i64 :: MAX , 1 ) , 0 ) ;
340
+ assert_eq ! ( pow_mod( 0 , i64 :: MAX , 3 ) , 0 ) ;
341
+ assert_eq ! ( pow_mod( 0 , i64 :: MAX , 723 ) , 0 ) ;
342
+ assert_eq ! ( pow_mod( 0 , i64 :: MAX , 998244353 ) , 0 ) ;
343
+ assert_eq ! ( pow_mod( 0 , i64 :: MAX , i32 :: MAX ) , 0 ) ;
344
344
345
345
assert_eq ! ( pow_mod( 1 , 0 , 1 ) , 0 ) ;
346
346
assert_eq ! ( pow_mod( 1 , 0 , 3 ) , 1 ) ;
347
347
assert_eq ! ( pow_mod( 1 , 0 , 723 ) , 1 ) ;
348
348
assert_eq ! ( pow_mod( 1 , 0 , 998244353 ) , 1 ) ;
349
- assert_eq ! ( pow_mod( 1 , 0 , i32 :: max_value ( ) ) , 1 ) ;
349
+ assert_eq ! ( pow_mod( 1 , 0 , i32 :: MAX ) , 1 ) ;
350
350
351
351
assert_eq ! ( pow_mod( 1 , 1 , 1 ) , 0 ) ;
352
352
assert_eq ! ( pow_mod( 1 , 1 , 3 ) , 1 ) ;
353
353
assert_eq ! ( pow_mod( 1 , 1 , 723 ) , 1 ) ;
354
354
assert_eq ! ( pow_mod( 1 , 1 , 998244353 ) , 1 ) ;
355
- assert_eq ! ( pow_mod( 1 , 1 , i32 :: max_value( ) ) , 1 ) ;
356
-
357
- assert_eq ! ( pow_mod( 1 , i64 :: max_value( ) , 1 ) , 0 ) ;
358
- assert_eq ! ( pow_mod( 1 , i64 :: max_value( ) , 3 ) , 1 ) ;
359
- assert_eq ! ( pow_mod( 1 , i64 :: max_value( ) , 723 ) , 1 ) ;
360
- assert_eq ! ( pow_mod( 1 , i64 :: max_value( ) , 998244353 ) , 1 ) ;
361
- assert_eq ! ( pow_mod( 1 , i64 :: max_value( ) , i32 :: max_value( ) ) , 1 ) ;
362
-
363
- assert_eq ! ( pow_mod( i64 :: max_value( ) , 0 , 1 ) , 0 ) ;
364
- assert_eq ! ( pow_mod( i64 :: max_value( ) , 0 , 3 ) , 1 ) ;
365
- assert_eq ! ( pow_mod( i64 :: max_value( ) , 0 , 723 ) , 1 ) ;
366
- assert_eq ! ( pow_mod( i64 :: max_value( ) , 0 , 998244353 ) , 1 ) ;
367
- assert_eq ! ( pow_mod( i64 :: max_value( ) , 0 , i32 :: max_value( ) ) , 1 ) ;
368
-
369
- assert_eq ! ( pow_mod( i64 :: max_value( ) , i64 :: max_value( ) , 1 ) , 0 ) ;
370
- assert_eq ! ( pow_mod( i64 :: max_value( ) , i64 :: max_value( ) , 3 ) , 1 ) ;
371
- assert_eq ! ( pow_mod( i64 :: max_value( ) , i64 :: max_value( ) , 723 ) , 640 ) ;
372
- assert_eq ! (
373
- pow_mod( i64 :: max_value( ) , i64 :: max_value( ) , 998244353 ) ,
374
- 683296792
375
- ) ;
376
- assert_eq ! (
377
- pow_mod( i64 :: max_value( ) , i64 :: max_value( ) , i32 :: max_value( ) ) ,
378
- 1
379
- ) ;
355
+ assert_eq ! ( pow_mod( 1 , 1 , i32 :: MAX ) , 1 ) ;
356
+
357
+ assert_eq ! ( pow_mod( 1 , i64 :: MAX , 1 ) , 0 ) ;
358
+ assert_eq ! ( pow_mod( 1 , i64 :: MAX , 3 ) , 1 ) ;
359
+ assert_eq ! ( pow_mod( 1 , i64 :: MAX , 723 ) , 1 ) ;
360
+ assert_eq ! ( pow_mod( 1 , i64 :: MAX , 998244353 ) , 1 ) ;
361
+ assert_eq ! ( pow_mod( 1 , i64 :: MAX , i32 :: MAX ) , 1 ) ;
362
+
363
+ assert_eq ! ( pow_mod( i64 :: MAX , 0 , 1 ) , 0 ) ;
364
+ assert_eq ! ( pow_mod( i64 :: MAX , 0 , 3 ) , 1 ) ;
365
+ assert_eq ! ( pow_mod( i64 :: MAX , 0 , 723 ) , 1 ) ;
366
+ assert_eq ! ( pow_mod( i64 :: MAX , 0 , 998244353 ) , 1 ) ;
367
+ assert_eq ! ( pow_mod( i64 :: MAX , 0 , i32 :: MAX ) , 1 ) ;
368
+
369
+ assert_eq ! ( pow_mod( i64 :: MAX , i64 :: MAX , 1 ) , 0 ) ;
370
+ assert_eq ! ( pow_mod( i64 :: MAX , i64 :: MAX , 3 ) , 1 ) ;
371
+ assert_eq ! ( pow_mod( i64 :: MAX , i64 :: MAX , 723 ) , 640 ) ;
372
+ assert_eq ! ( pow_mod( i64 :: MAX , i64 :: MAX , 998244353 ) , 683296792 ) ;
373
+ assert_eq ! ( pow_mod( i64 :: MAX , i64 :: MAX , i32 :: MAX ) , 1 ) ;
380
374
381
375
assert_eq ! ( pow_mod( 2 , 3 , 1_000_000_007 ) , 8 ) ;
382
376
assert_eq ! ( pow_mod( 5 , 7 , 1_000_000_007 ) , 78125 ) ;
@@ -409,7 +403,7 @@ mod tests {
409
403
assert ! ( !is_prime( 1_000_000_000 ) ) ;
410
404
assert ! ( is_prime( 1_000_000_007 ) ) ;
411
405
412
- assert ! ( is_prime( i32 :: max_value ( ) ) ) ;
406
+ assert ! ( is_prime( i32 :: MAX ) ) ;
413
407
}
414
408
415
409
#[ test]
@@ -442,8 +436,8 @@ mod tests {
442
436
( 57 , 81 , 3 ) ,
443
437
( 12345 , 67890 , 15 ) ,
444
438
( -3141592 * 6535 , 3141592 * 8979 , 3141592 ) ,
445
- ( i64:: max_value ( ) , i64:: max_value ( ) , i64:: max_value ( ) ) ,
446
- ( i64:: min_value ( ) , i64:: max_value ( ) , 1 ) ,
439
+ ( i64:: MAX , i64:: MAX , i64:: MAX ) ,
440
+ ( i64:: MIN , i64:: MAX , 1 ) ,
447
441
] {
448
442
let ( g_, x) = inv_gcd ( a, b) ;
449
443
assert_eq ! ( g, g_) ;
@@ -454,25 +448,15 @@ mod tests {
454
448
455
449
#[ test]
456
450
fn test_primitive_root ( ) {
457
- for & p in & [
458
- 2 ,
459
- 3 ,
460
- 5 ,
461
- 7 ,
462
- 233 ,
463
- 200003 ,
464
- 998244353 ,
465
- 1_000_000_007 ,
466
- i32:: max_value ( ) ,
467
- ] {
451
+ for & p in & [ 2 , 3 , 5 , 7 , 233 , 200003 , 998244353 , 1_000_000_007 , i32:: MAX ] {
468
452
assert ! ( is_prime( p) ) ;
469
453
let g = primitive_root ( p) ;
470
454
if p != 2 {
471
455
assert_ne ! ( g, 1 ) ;
472
456
}
473
457
474
458
let q = p - 1 ;
475
- for i in ( 2 ..i32:: max_value ( ) ) . take_while ( |i| i * i <= q) {
459
+ for i in ( 2 ..i32:: MAX ) . take_while ( |i| i * i <= q) {
476
460
if q % i != 0 {
477
461
break ;
478
462
}
0 commit comments