求余数
时间限制:1000 ms | 内存限制:65535 KB
难度:3
- 描述
- 现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数除10003之后的余数
- 输入
- 第一行有一个整数m(1<=m<=8),表示有m组测试数据;
随后m行每行有一个自然数n。 输出 - 输出n整除10003之后的余数,每次输出占一行。 样例输入
-
3 4 5 465456541
样例输出 -
4 5 6948
-
#include <stdio.h> #define MAX 1000001 int gcd(char s[]) { int results = 0; for(int i = 0; s[i] != '\0'; i++) //利用同余定理 { results = results * 10 + s[i] - '0'; results %= 10003; } return results; } int main() { char s[MAX]; int m; scanf("%d",&m); while(m--) { scanf("%s",s); printf("%d\n",gcd(s)); } } -
这题主要利用了同余定理,关于同余定理有很多,这里不做说明了,这题已经AC了,这里提供参考。
- 第一行有一个整数m(1<=m<=8),表示有m组测试数据;
本文详细介绍了如何使用同余定理解决自然数除以特定数(如10003)后的余数问题,并提供了AC代码示例。重点在于理解同余定理的应用,适合初学者和对算法感兴趣的读者。
246

被折叠的 条评论
为什么被折叠?



