码迷,mamicode.com
首页 > 其他好文 > 详细

2^x mod n = 1

时间:2015-08-28 13:19:53      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 14494    Accepted Submission(s): 4484


Problem Description
Give a number n, find the minimum x(x>0) that satisfies 2^x mod n = 1.
 

Input
One positive integer on each line, the value of n.
 

Output
If the minimum x exists, print a line with 2^x mod n = 1.

Print 2^? mod n = 1 otherwise.

You should replace x and n with specific numbers.
 

Sample Input
2 5
 

Sample Output
2^? mod 2 = 1 2^4 mod 5 = 1
 


#include<stdio.h>
int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		if(n==1||n%2==0)//n 是1的情况没有考虑,n是偶数的情况没有考虑。
		{
			printf("2^? mod %d = 1\n",n);
			continue;
		}
		int w=2,j=1;
		while(w!=1)
		{
			j++;
			w*=2;
			w%=n;//刚开始少了该步骤而导致提交超时

		}
      printf("2^%d mod %d = 1\n",j,n);
	}
	return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

2^x mod n = 1

标签:

原文地址:http://blog.csdn.net/l15738519366/article/details/48049827

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!