K尾相等数(模运算)
Description
从键盘输入一个自然数K(K>1),若存在自然数M和N(M>N),使得K^M^和K^N^均大于或等于1000,且他们的末尾三位数相等,则称M和N是一对“K尾相等数”。请编一个程序,输出M+N值最小的K尾相等数。
Input
输入一个整数K
Output
输出M+N的最小值
Sample Input
2
Sample Output
120
用到的知识点:
\((a * b) \% mod = ((a \% mod) * (b \% mod)) \% mod\)
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int k, nums[1000]; // nums[(k^n) % 1000的余数] = n
while (cin >> k)
{
if (k <= 1)
return -1;
memset(nums, 0, sizeof(nums)); // nums数组初始化0
int n = 0, numPow = 1; // 当前计数的幂次
while (numPow < 1000) // 找到>=1000时的k的n次幂
{
numPow *= k;
n++;
}
while (true)
{
if (nums[numPow % 1000] == 0)
nums[numPow % 1000] = n; // 如果nums[]为0, 没有标记过, 就标记当前的幂次数n
else
break; // 被标记过就是, 找到了第二个(M)标记的了
numPow = (numPow % 1000) * (k % 1000); // 模运算的乘法
n++; // 幂次++
}
cout << nums[numPow % 1000] + n << endl; // nums[numPow % 1000]存的第一次(N)的, n为第二次(M)的
}
return 0;
}
K尾相等数(模运算)的更多相关文章
- Uva 11582 巨大的斐波那契数 模运算
题目链接:https://vjudge.net/contest/156903#problem/A 题意:计算 f(a^b)%n 分析: 1.斐波那契数列是 f(i+2) = f(i+1) + f(i) ...
- 1076 K尾相等数
时间限制:500MS 内存限制:65536K提交次数:251 通过次数:80 题型: 编程题 语言: C++;C Description 从键盘输入一个自然数K(99999999>K> ...
- nyoj_212_K尾相等数_210402272239
K尾相等数 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 输入一个自然数K(K>1),如果存在自然数M和N(M>N),使得K^M和K^N均大于等于100 ...
- SCAU-1076 K尾相等数
代码借鉴SCAU-OJ(感谢!!) 题目:1076 K尾相等数 时间限制:500MS 内存限制:65536K提交次数:251 通过次数:80 题型: 编程题 语言: G++;GCC Desc ...
- 二分求幂/快速幂取模运算——root(N,k)
二分求幂 int getMi(int a,int b) { ; ) { //当二进制位k位为1时,需要累乘a的2^k次方,然后用ans保存 == ) { ans *= a; } a *= a; b / ...
- Divide two numbers,两数相除求商,不能用乘法,除法,取模运算
问题描述:求商,不能用乘法,除法,取模运算. 算法思路:不能用除法,那只能用减法,但是用减法,超时.可以用位移运算,每次除数左移,相当于2倍. public class DividTwoInteger ...
- #数论-模运算#POJ 1150、1284、2115
1.POJ 1150 The Last Non-zero Digit #质因数分解+模运算分治# 先贴两份题解: http://www.hankcs.com/program/algorithm/poj ...
- 蓝桥杯 问题 1110: 2^k进制数 (排列组合+高精度巧妙处理)
题目链接 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2 ...
- a ^ b mod c 取模运算优化反思(老物)
这是一篇嘲讽我之前的自己采用笨重愚蠢思想去解决问题的日志. RSA 加密与解密涉及到 a ^ b mod c 的问题,如何计算这个值呢? 我会选择 pow(a, b) % c, 事实上在写RSA的时候 ...
随机推荐
- lumen laravel response对象返回数据
Route::get('home', function () { $content = "内容"; $status = 301; $value = 'text/html'; // ...
- Linux运维学习第六周记
四月上夏渐热 善疗也须调摄 文殊眼裹抽筋 金刚脑后拔楔 网络的世界让人变得不那么真实! 第六周学记 用了一周的时间学习了计算机网络基础知识,说是基础,更应该说是必备的常识! 网络的协议和管理 TCP/ ...
- JS实现将二维数组生成到页面上
前言 之前没说过数组,现在来写一下数组 CSS span { border:2px solid skyblue; width:30px; height: 30px; display: inline-b ...
- 双非本科拿到阿里腾讯字节,分享Java后端路线
前言 最近有很多小师妹来问我. 师妹:师兄~看了你之前的从腾讯到阿里,最后选择字节,觉得你特别厉害,请问你是怎么进BAT的呀,能不能告诉我你的学习路线呀~ 既然小师妹都这么问了,那我在这篇就如实回答她 ...
- C. Vladik and Memorable Trip 解析(思維、DP)
Codeforce 811 C. Vladik and Memorable Trip 解析(思維.DP) 今天我們來看看CF811C 題目連結 題目 給你一個數列,一個區段的數列的值是區段內所有相異數 ...
- 从APT攻击中学习
0x01. 什么是APT? 可以看出APT攻击,叫高级可持续威胁攻击,也称为定向威胁攻击:什么是定向,也就是指定目标行业而发起进攻 这边又提到供应链和社会工程学,那是什么? 社会工程学,也就是社工,通 ...
- 云计算管理平台之OpenStack计算服务nova
一.nova简介 nova是openstack中的计算服务,其主要作用是帮助我们在计算节点上管理虚拟机的核心服务:这里的计算节点就是指用于提供运行虚拟机实例的主机,通常像这种计算节点有很多台,那么虚拟 ...
- Pytest框架中,conftest.py文件的作用?
conftest.py文件,它主要是实现fixture共享的. 第一,conftest.py文件当中,它储存的都是fixture,就是给用例提供做前置准备工作和后置清理工作的一个东西: 第二,conf ...
- MySql基础(常用)
MySQL常用语句 1.查看当前所有数据库 show databases; 2.打开指定的库 use 库名; 3.查看当前库中的所有表 show tables; 4.查看其他库的表 show tabl ...
- 在PLC中开关量采集模块的作用
PLC系统作为工业控制的基础设备在如今的现代化工厂应用中已经非常的广泛.许多工厂应用中,都需要对现场采集来的脉冲信号进行计数统计.如果是使用专用脉冲计数模块的话,价格会非常的昂贵,在很多采集低速脉冲信 ...