1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| import java.util.Scanner;
public class Main{ static int mod=9901; public static void main(String[] args){ Scanner scan=new Scanner(System.in); int A=scan.nextInt(),B=scan.nextInt(); int res=1; for(int i=2;i*i<=A;i++){ if(A%i==0){ int s=0; while(A%i==0){ A/=i; s++; } res=res*sum(i,s*B+1)%mod; } } if(A>1)res=res*sum(A,B+1)%mod; if(A==0)res=0; System.out.println(res); } public static int quic(int a,int k){ int res=1; a%=mod; while(k>0){ if((k&1)==1){ res=(res*a)%mod; } a=(a*a)%mod; k>>=1; } return res; } public static int sum(int p,int k){ if(k==1)return 1; if(k%2==0){ return ((1+quic(p,k/2))*sum(p,k/2))%mod; } else { return (sum(p,k-1)+quic(p,k-1))%mod; } } }
|