hdu 1395 比较简单的数论题
2014-08-04 16:27
369 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1395
题目给定一个数 n(n>=1),要求最小的x使得 2^x%n==1;
容易知道 如果n==1 或者 n为偶数 ,就没有最小值;
否则 一定会有一个最小值x;
题目给定一个数 n(n>=1),要求最小的x使得 2^x%n==1;
容易知道 如果n==1 或者 n为偶数 ,就没有最小值;
否则 一定会有一个最小值x;
#include <iostream> #include <cstdio> #include <stdio.h> #include <string.h> using namespace std; int main() { int n; while(cin>>n) { if(n==1||n%2==0) { printf("2^? mod %d = 1\n",n); continue; } int cnt=1,temp=2; while(temp%n!=1) //因为一定会存在一个x,那么直接暴力查找 { temp=(temp*2)%n;//这里必须一边乘一遍对n取模,如果不取模,则会超时,很大的两个数相乘所耗费的时间肯定多余 两个很小的数相乘所耗费的时间 cnt++; } printf("2^%d mod %d = 1\n",cnt,n); } return 0; }
相关文章推荐
- (step7.2.1)hdu 1395(2^x mod n = 1——简单数论)
- hdu 1395 2^x mod n = 1 (简单数论)
- (step7.2.1)hdu 1395(2^x mod n = 1——简单数论)
- hdu 1395 2^x mod n = 1 (简单数论)
- HDU 4335 What is N? 简单数论
- HDU 1576 A/B(数论简单题,求逆元)
- hdu 1222 Wolf and Rabbit(简单数论)
- (step7.2.4)hdu 2674(N!Again——简单数论)
- HDU 1222(数论,简单题)
- zoj1489 hdu 1395 (数论)
- hdu 1021 Fibonacci Again(简单数论)
- (step7.2.3)hdu 2554(N对数的排列问题——简单数论)
- HDU 1124 Factorial(简单数论)
- hdu 2421简单数论题
- HDU-4145 A Simple Problem 简单数论
- hdu 2114 Calculate S(n) 数论(简单题)
- HDU 1492 The number of divisors(约数) about Humble Numbers(数论,简单约数)
- HDU 3818 A + B Problem 简单数论题
- HDU 1395 数论小技巧
- (step7.2.3)hdu 2554(N对数的排列问题——简单数论)