博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5809. 【NOIP2008模拟】数羊
阅读量:5226 次
发布时间:2019-06-14

本文共 1203 字,大约阅读时间需要 4 分钟。

Description

牧羊人A和牧羊人B总是很无聊,所以他们要玩一个游戏。A有a只羊,B有b只羊。
他们想要知道a^b的因子和是多少。
这就很为难两个牧羊人了,由于答案太大,你能不能告诉我答案取模9901的数。
 

Input

仅一行,为两个正整数a和b。
 

Output

a^b的因子和对9901的余数。
 

Solution

对于100%的数据,我们将a进行质因数分解,将每个质因子的指数乘上b,

最后的答案就是等比数列的和,但是由于涉及取模,所以我们除法要用逆元。

在下比较菜,记一下逆元怎么用:

 

代码

 

1 const 2   mo=9901; 3 var 4   n,m,nm,ans:longint; 5 function mi(x,tk:int64):longint; 6 var 7   t:int64; 8 begin 9   t:=1;10   while tk>0 do11     begin12       if tk mod 2=1 then13         t:=(t*x) mod mo;14       x:=(x*x) mod mo;15       tk:=tk div 2;16     end;17   exit(t);18 end;19 20 procedure main;21 var22   i,t,j,tt,kk:longint;23 begin24   i:=2; t:=n; ans:=1;25   while t<>1 do26     begin27       j:=0;28       while t mod i=0 do29         begin30           inc(j);31           t:=t div i;32         end;33       if j>0 then34         begin35           tt:=mi(i,j*m+1)-1;36           kk:=mi(i-1,mo-2);37           ans:=ans*(tt*kk) mod mo;38         end;39       inc(i);40     end;41 end;42 43 begin44   assign(input,'sheep.in');45   assign(output,'sheep.out');46   reset(input);47   rewrite(output);48   readln(n,m);49   main;50   writeln(ans);51   close(input);52   close(output);53 end.

转载于:https://www.cnblogs.com/zyx-crying/p/9468892.html

你可能感兴趣的文章
定制异常
查看>>
windows上配置pytorch
查看>>
《创业维艰》
查看>>
Java HashMap实现原理 源码剖析
查看>>
Oracle中start with...connect by子句的用法
查看>>
如何进行数据变换(转)
查看>>
delphi也可以使用C语言脚本 --Picoc脚本语言
查看>>
visio 如何扩大画布大小
查看>>
css权威指南读书笔记
查看>>
C语言中关联计数器的协同管理
查看>>
web-11. 层叠式表的属性与滤镜
查看>>
Vue
查看>>
表变量与临时表的优缺点(转)
查看>>
shell脚本图书
查看>>
UNIX环境高级编程——线程限制
查看>>
UNIX网络编程——原始套接字SOCK_RAW
查看>>
TCP发送源码学习(1)--tcp_sendmsg
查看>>
使用两个不同类型的数据进行加法计算时,使用异常处理语句捕获由于数据类型错误而出现的异常,发生生成错误。是否继续并运行上次的成功生成?...
查看>>
python-三级菜单和购物车程序
查看>>
web开发灵感推荐--34个有吸引力的电影网站设计灵感
查看>>