trang chủ / đề bài / primmult

Số nguyên tố và phép nhân

Đề bài

Mô tả

Với số nguyên dương x, gọi prime(x) là tập các ước nguyên tố của x. Ví dụ prime(140)={2,5,7}, prime(169)={13}.

Với số nguyên tố p, gọi g(x,p) là luỹ thừa pk lớn nhất sao cho x chia hết cho pk (k nguyên không âm). Ví dụ g(45,3)=9 (vì 45 chia hết cho 32=9 nhưng không chia hết cho 33=27), g(63,7)=7.

Với hai số nguyên dương x,y, gọi f(x,y) là tích của g(y,p) trên tất cả p∈prime(x). Ví dụ:

  • f(30,70)=g(70,2)·g(70,3)·g(70,5)=21·30·51=10
  • f(525,63)=g(63,3)·g(63,5)·g(63,7)=32·50·71=63

Cho hai số nguyên x và n. Hãy tính

f(x,1)·f(x,2)·…·f(x,n)mod(109+7).

Dữ liệu vào

Một dòng duy nhất chứa hai số nguyên x và n.

Dữ liệu ra

In ra một số nguyên là giá trị của biểu thức lấy theo modulo 109+7.

Ràng buộc

  • 2≤x≤109
  • 1≤n≤1018

Ví dụ

Input Output Giải thích
10 2 2 prime(10)={2,5}. f(10,1)=g(1,2)·g(1,5)=1, f(10,2)=g(2,2)·g(2,5)=2·1=2. Tích bằng 2.
947 987654321987654321 593574252 947 là số nguyên tố. Kết quả lấy theo modulo 109+7.
2 1 1 f(2,1)=g(1,2)=1.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0