1 条题解
-
0
C :
#include<stdio.h> int main() { int n,x,i,s; while(scanf("%d",&n)!=EOF) { if(n%2==0||n==1) printf("2^? mod %d = 1\n",n); else { for(s=i=2;;i++) { s*=2; if(s%n==1) { printf("2^%d mod %d = 1\n",i,n); break; } s%=n; } } } return 0; }
C++ :
#include<stdio.h> int main() { int n,x,i,s; while(scanf("%d",&n)!=EOF) { if(n%2==0||n==1) printf("2^? mod %d = 1\n",n); else { for(s=i=2;;i++) { s*=2; if(s%n==1) { printf("2^%d mod %d = 1\n",i,n); break; } s%=n; } } } return 0; }
Pascal :
program p1073; var i,j,k,n,s:longint; begin while not eof do begin readln(n); if (n mod 2=0) or (n=1) then writeln('2^? mod ',n,' = 1') else begin i:=2; s:=2; while true do begin s:=s*2; if s mod n=1 then begin writeln('2^',i,' mod ',n,' = 1'); break; end; i:=i+1; s:=s mod n; end; end; end; end.
Java :
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); while(in.hasNextInt()){ int n = in.nextInt(); int b = Integer.MAX_VALUE; if(n==1||n%2==0){ System.out.println("2^? mod "+n+" = 1"); continue; } else{ for(int i=1;i<b;i++){ if(Math.pow(2,i)%n==1){ System.out.println("2^"+i+" mod "+n+" = 1");break; } } } } } }
- 1
信息
- ID
- 2076
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者