有理数取余
首先a,b,d的范围大的离谱,显然不能直接读入,所以一边读入一边取模,然后注意到19260817是一个素数,显然可以用费马小定理,a^(p-1)=1(mod p).但我这里的代码是取模的线性替换
`#include<stdio.h>
include
include
include<stdlib.h>
include<string.h>
include
include
using namespace std;
const int p = 19260817;
tuple<int, int, int> P_gcd(int a, int b) {
if (b == 0) return { a,1,0 };
auto [g, x1, y1] = P_gcd(b, a % b);
int x = y1;
int y = x1 - a / b * y1;
return { g,x,y };
}
int niyuan(int a, int p) {
auto [g, x, y] = P_gcd(a, p);
if (g != 1) return -1;
if (x < 0) x += p;
return x;
}
int main() {
int a=0,b=0;
char s[10007];
cin>>s;
int len = strlen(s);
for (int i = 0;i < len;i++) {
a = a * 10 + s[i]-'0';
a %= p;
}
cin>>s;
len = strlen(s);
for (int i = 0;i < len;i++) {
b = b * 10 + s[i]-'0';
b %= p;
}
int n = niyuan(b, p);
if (n == -1) printf("Angry!");
else {
//printf("%d %d %d\n", n, a, b);
n = 1ll * n *a% p;
printf("%d", n);
}
return 0;
}`
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战