思路
- 一个数学问题
- 要知道1为奇数,2^x次方一定为偶数。
- 偶数=奇数+奇数,而奇数=奇数*奇数,所以x一定要是奇数才可以。
注意
- 没告诉范围所以要往大的方向考虑
- 其中1能够被任一整数整除,所以前面加上对1的判断
#include<stdio.h>
int main(){
int i,n,temp;
while(~scanf("%d",&n)){
temp=1;
if(n%2&&n>1){
//必须是大于1的奇数才有,有就一定会跳出循环
for(i=1;;++i){
temp=temp*2%n;
//在过程中求余数,防止溢出了
if(temp==1){
printf("2^%d mod %d = 1\n",i,n);
break;
}
}
}
else printf("2^? mod %d = 1\n",n);
}
return 0;
}
标签:temp,奇数,int,1136,ZCMU,printf,mod
From: https://www.cnblogs.com/hai-zei/p/18175610