求余数
时间限制: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组测试数据;