大数求余

 1 /**2016中国大学生程序设计网络赛赛HDU
 2    1001大数求余
 3 */
 4
 5 #include "iostream"
 6 #include "cstdio"
 7 #include "cstring"
 8 using namespace std;
 9  char s[100000002];
10 int main() {
11
12   int t=1;
13   while(~scanf("%s", &s)) {
14
15     int m = 0,n=0;
16     for(int i = 0; i <strlen(s); i++)
17      {
18        m = (m*10+s[i]-‘0‘)%73;
19        n = (n*10+s[i]-‘0‘)%137;
20      }
21
22      if(m==0&&m==0)
23      {
24         printf("Case #%d: YES\n",t);
25      }else{
26         printf("Case #%d: NO\n",t);
27      }
28     t++;
29   }
30   return 0;
31 }
时间: 2025-01-10 18:32:11

大数求余的相关文章

POJ 2635 The Embarrassed Cryptographer(大数求余)

题意:给出一个大数,这个大数由两个素数相乘得到,让我们判断是否其中一个素数比L要小,如果两个都小,输出较小的那个. 分析:大数求余的方法:针对题目中的样例,143 11,我们可以这样算,1 % 11 = 1:      1×10 + 4 % 11 = 3:      3×10 + 3 % 11 = 0;我们可以把大数拆成小数去计算,同余膜定理保证了这个算法的这正确性,而且我们将进制进行一定的扩大也是正确的. 注意:素数打标需要优化,否则超时.   进制需要适当,100和1000都可以,10进制超

nyoj 803 A/B Problem(大数除小数&amp;&amp;大数求余小数)

这道题 也就是大数除或者求模小数,不过听说java处理大数很方便,可是java学的一塌糊涂..有心人用java做吧 奉上c语言代码: #include <stdio.h> #include <string.h> int main() { char a[1000],c[1000],ch; int b,i,j,r; while(scanf("%s %c %d",a,&ch,&b)!=EOF)//a是存贮大数,ch存贮运算符,b是小数 { r=0; i

POJ 2305大数求余

一开始是的想法是用减法代替除法,一直减到被减数小于减数,所得的被减数就是余数.为了方便编程,还在减法中对齐了被减数和减数的位数.但过程还是比较麻烦,会超时. 1 #include "stdafx.h" 2 #include<string> 3 #include<iostream> 4 using namespace std; 5 int b; 6 string decrease(string p, string cut) 7 { 8 int diff=p.siz

大数求余简单办法(水)

Prepared for New Acmer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7477    Accepted Submission(s): 2826 Problem Description 集训进行了将近2个礼拜,这段时间以恢复性训练为主,我一直在密切关注大家的训练情况,目前为止,对大家的表现相当满意,首先是绝大部分队员

Large Division (大数求余)

Given two integers, a and b, you should check whether a is divisible by b or not. We know that an integer a is divisible by an integer b if and only if there exists an integer c such that a = b * c. Input Input starts with an integer T (≤ 525), denot

如何运用同余定理求余数【hdoj 1212 Big Number【大数求余数】】

Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5930    Accepted Submission(s): 4146 Problem Description As we know, Big Number is always troublesome. But it's really important in our

取模和求余的区别

通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用'%'符号表示取模或者求余运算.在这里要提醒大家要十分注意当前环境下'%'运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的. 对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余数: r = a - c*b. 求模运算和求余运算在第一步不同: 取模求余运算在取c的值时,向0 方向舍入(fix()函数): 而求余取模运算在计算c的值时,向

求模和求余(附加C语言实现)

求模和求余的总体计算步骤如下: 1.求整数商  c = a/b 2.计算模或者余数 r = a - c*b 求模和求余的第一步不同,求余在取c的值时向0方向舍入;取模在计算c的值时向无穷小方向舍入. C语言实现 //取余 int rem(int a, int b) { int c = a * 1.0 / b; return (a - c * b); } //求模 int mod(int a, int b) { int c = floor(a * 1.0 / b); //#include <mat

求余运算符

笔记摘自<极客学院> 求余运算(a % b)是计算b的多少倍刚刚好可以容入a,返回多出来的那部分(余数). 注意:求余运算(%)在其他语言也叫取模运算.然而严格说来,我们看该运算符对负数的操作结果,"求余"比"取模"更合适些. 我们来谈谈取余是怎么回事,计算9 % 4,你先计算出4的多少倍会刚好可以容入9中: 2倍,非常好,那余数是1(用橙色标出) 在 Swift 中可以表达为: 9 % 4 // 等于 1 为了得到a % b的结果,%计算了以下等式,并