小光棍数(同余定理)

小光棍数

时间限制:1000 ms  |  内存限制:65535 KB

难度:1

描述
最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数。他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少?
输入
有多组测试数据。第一行一个整数n,表示有n组测试数据。接下来的每行有一个整数m。
输出
输出第m个小光棍数。
样例输入
1
1
样例输出
471
/*同余定理 即 a三b mod m    则存在一个k使得a=b+k*m
要想使最后三位为111,则小光棍数最后三位必须为471,因为(1000*d+471)^3最后三位数只有471决定
    这道题 a = 471 mod 1000 =>  a = 471 + 1000*m
    由于471是第一个所以a = 471 + 1000*(m-1)
*/
#include<stdio.h>

int main()
{
    long long m;
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%lld",&m);
        printf("%lld\n",471+1000*(m-1));
    }
    return 0;
}

时间: 2024-08-20 20:45:13

小光棍数(同余定理)的相关文章

小光棍数

描述 最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数.他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少? 输入 有多组测试数据.第一行一个整数n,表示有n组测试数据.接下来的每行有一个整数m. 输出 输出第m个小光棍数. 样例输入 1 1 样例输出 471 同余定理 即 a三b mod m  则存在一个k使得a=b+k*m      这道题 a = 47

每日一水-----小光棍数

描述:最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数.他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少? 输入:有多组测试数据.第一行一个整数n,表示有n组测试数据.接下来的每行有一个整数m 输出:输出第m个小光棍数. 输入数据: 1 输出数据: 471 /*************************************************

nyoj 458-小光棍数 (471)

458-小光棍数 内存限制:64MB 时间限制:1000ms 特判: No 通过数:6 提交数:6 难度:1 题目描述: 最近Topcoder的XD遇到了一个难题,倘若一个数的三次方的后三位是111,他把这样的数称为小光棍数.他已经知道了第一个小光棍数是471,471的三次方是104487111,现在他想知道第m(m<=10000000000)个小光棍数是多少? 输入描述: 有多组测试数据.第一行一个整数n,表示有n组测试数据.接下来的每行有一个整数m. 输出描述: 输出第m个小光棍数. 样例输

hdu1576-A/B-(同余定理+乘法逆元+费马小定理+快速幂)

A/B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10383    Accepted Submission(s): 8302 Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1). Input 数据的第一行是一个

数论 --- 同余定理

声明:以下文章是借鉴了别人的再加上自己补充后的,转载请注明! 一.同余 对于整数除以某个正整数的问题,如果只关心余数的情况,就产生同余的概念. 定义1 用给定的正整数m分别除整数a.b,如果所得的余数相等,则称a.b对模m同余,记作a≡b(mod m),如 56≡0 (mod 8). 举个例子: 3%2=1 5%2=1 则有: (5-3)%=0 [同余性质] 1) 自反性 2) 传递性 3) 对称性 4) 若 a ≡ b (mod m), c ≡ d (mod m) 则 a+b ≡ b+ d(m

2016湖南省赛----A 2016 (同余定理)

2016湖南省赛----A 2016 (同余定理) Description 给出正整数 n 和 m,统计满足以下条件的正整数对 (a,b) 的数量: 1. 1≤a≤n,1≤b≤m; 2. a×b 是 2016 的倍数. Input 输入包含不超过 30 组数据. 每组数据包含两个整数 n,m (1≤n,m≤10 9). Output 对于每组数据,输出一个整数表示满足条件的数量. Sample Input 32 63 2016 2016 1000000000 1000000000 Sample

Light oj 1214-Large Division (同余定理)

题目链接:http://lightoj.com/volume_showproblem.php?problem=1214 题意很好懂,同余定理的运用,要是A数被B数整除,那么A%B等于0.而A很大,那我就把A的每一位拆开,比如A是2341,那么2341=2000+300+40+1,然后你懂的... 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5

[ACM] POJ 2635 The Embarrassed Cryptographer (同余定理,素数打表)

The Embarrassed Cryptographer Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11978   Accepted: 3194 Description The young and very promising cryptographer Odd Even has implemented the security module of a large system with thousands of

NYOJ 420 p次方求和 (快速幂+同余定理)

题目描述: http://acm.nyist.net/JudgeOnline/problem.php?pid=420 一个很简单的问题,求1^p+2^p+3^p+--+n^p的和. 输入 第一行单独一个数字t表示测试数据组数.接下来会有t行数字,每行包括两个数字n,p, 输入保证0<n<=1000,0<=p<=1000. 输出 输出1^p+2^p+3^p+--+n^p对10003取余的结果,每个结果单独占一行. 样例输入 210 110 2 样例输出 55385 题目分析: 快速幂