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