import java io import java util class angouka

  • Slides: 45
Download presentation

現時点までにできているプログラムの説明 import java. io. *; //ファイルへの入出力を扱う import java. util. *; //ファイルを読み込む class angouka 1

現時点までにできているプログラムの説明 import java. io. *; //ファイルへの入出力を扱う import java. util. *; //ファイルを読み込む class angouka 1 { public static void main(String[] args) throws IOException { Buffered. Reader br; //バッファからデータを取り出すために使うクラス System. out. println("どのくらいの素数を入力したいですか?"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); String str 1 = br. read. Line(); int sosu; sosu = Integer. parse. Int(str 1); int divisor; for(int i = 2; i <= sosu; i++) {

divisor = 0; for(int j = 1; j <= i; j++) { if(i %

divisor = 0; for(int j = 1; j <= i; j++) { if(i % j == 0) { divisor++; } } if(divisor == 2) { int y; y = sosu % i; if(y!=0) { System. out. print("素数="); System. out. println(i); } } }

System. out. println("上の中から2つの素数P, Qを入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("P=");

System. out. println("上の中から2つの素数P, Qを入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("P="); String str 2 = br. read. Line(); System. out. print("Q="); String str 3 = br. read. Line(); System. out. println("P="+ str 2 + ", Q="+ str 3); int p, q, n; p = Integer. parse. Int(str 2); q = Integer. parse. Int(str 3); n = p * q; System. out. println("N="+ n); int f, m, a, b; a = p-1; b = q-1; int d=1, l; if(p>q) { f = a % b; if(f==0)

{ l = a; System. out. println("L="+ l); } else { do { d++;

{ l = a; System. out. println("L="+ l); } else { do { d++; l = a * d; f = l % b; }while(f!=0); System. out. println("L="+ l); } } else if(p<q) { m = b % a; if(m==0)

{ l = b; System. out. println("L="+ l); } else { do { d++;

{ l = b; System. out. println("L="+ l); } else { do { d++; l = b * d; m = l % a; }while(m!=0); System. out. println("L="+ l); } } else if(p==q) { l = a; System. out. println("L="+ l); }

else System. out. println("エラーです。"); System. out. println("Lの値を入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in));

else System. out. println("エラーです。"); System. out. println("Lの値を入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("L="); String str 4 = br. read. Line(); int z; z = Integer. parse. Int(str 4); for(int i = 2; i <= z; i++) { divisor = 0; for(int j = 1; j <= i; j++) { if(i % j == 0) { divisor++; } } if(divisor == 2) {

int y; y = z % i; if(y!=0) { System. out. print("E="); System. out.

int y; y = z % i; if(y!=0) { System. out. print("E="); System. out. println(i); } } } System. out. println("上のEの値から好きなEの値を 1つ入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("E="); String str 5 = br. read. Line(); int x; x = Integer. parse. Int(str 5); int angou; br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("ファイル名をタイピングしてください:"); String filename=br. read. Line(); br=new Buffered. Reader(new File. Reader(filename));

String str; int k=0; int count=0, tmp; final int bit=0 x 0001; char[] cary;

String str; int k=0; int count=0, tmp; final int bit=0 x 0001; char[] cary; try{ Print. Writer pw = new Print. Writer(new Buffered. Writer(new File. Writer("暗号化. txt"))); while((str=br. read. Line())!=null) { System. out. println(count+": "+str); cary=str. to. Char. Array(); System. out. print(count+": "); for(int i=0; i<cary. length; i++) { int sum=0; for(int j=0; j<16; j++) { tmp = cary[i]&(bit<<(15 -j)); tmp >>= 15 -j;

if(tmp==1) { System. out. print("1"); k = 16 -j; } else { System. out.

if(tmp==1) { System. out. print("1"); k = 16 -j; } else { System. out. print("0"); k = 0; } sum += k; } System. out. println("["+cary[i]+"] "); System. out. println("sum="+ sum +" "); angou = sum % n; //mod計算(冪乗法) for(int w = 1; w <= x-1; w++) { angou *= sum; angou = angou % n;

if(w==x-1) { System. out. println("暗号化した文 字の数値は"+ angou +"です。"); System. out. println("暗号化した文 字は"+(char)angou+"です。"); pw. println(angou);

if(w==x-1) { System. out. println("暗号化した文 字の数値は"+ angou +"です。"); System. out. println("暗号化した文 字は"+(char)angou+"です。"); pw. println(angou); } } } System. out. println(); count++; } br. close(); pw. close(); } catch(IOException e){ System. out. println("入出力エラーです。"); } } }

import java. io. *; //ファイルへの入出力を扱う import java. util. *; //ファイルを読み込む class angouka { public

import java. io. *; //ファイルへの入出力を扱う import java. util. *; //ファイルを読み込む class angouka { public static void main(String[] args) throws IOException { Buffered. Reader br; //バッファからデータを取り出すために使うクラス System. out. println("どのくらいの素数を入力したいですか?"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); String str 1 = br. read. Line(); int sosu; sosu = Integer. parse. Int(str 1); int divisor; for(int i = 2; i <= sosu; i++) { divisor = 0; for(int j = 1; j <= i; j++) {

if(i % j == 0) { divisor++; } } if(divisor == 2) { int

if(i % j == 0) { divisor++; } } if(divisor == 2) { int y; y = sosu % i; if(y!=0) { System. out. print("素数="); System. out. println(i); } } } System. out. println("上の中から2つの素数P, Qを入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("P="); String str 2 = br. read. Line(); System. out. print("Q=");

String str 3 = br. read. Line(); System. out. println("P="+ str 2 + ",

String str 3 = br. read. Line(); System. out. println("P="+ str 2 + ", Q="+ str 3); int p, q, n; p = Integer. parse. Int(str 2); q = Integer. parse. Int(str 3); n = p * q; System. out. println("N="+ n); int f, m, a, b; a = p-1; b = q-1; int d=1, l; if(p>q) { f = a % b; if(f==0) { l = a; System. out. println("L="+ l); } else {

do { d++; l = a * d; f = l % b; }while(f!=0);

do { d++; l = a * d; f = l % b; }while(f!=0); System. out. println("L="+ l); } } else if(p<q) { m = b % a; if(m==0) { l = b; System. out. println("L="+ l); } else { do

{ d++; l = b * d; m = l % a; }while(m!=0); System.

{ d++; l = b * d; m = l % a; }while(m!=0); System. out. println("L="+ l); } } else if(p==q) { l = a; System. out. println("L="+ l); } else System. out. println("エラーです。"); System. out. println("Lの値を入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("L="); String str 4 = br. read. Line(); int z;

z = Integer. parse. Int(str 4); for(int i = 2; i <= z; i++)

z = Integer. parse. Int(str 4); for(int i = 2; i <= z; i++) { divisor = 0; for(int j = 1; j <= i; j++) { if(i % j == 0) { divisor++; } } if(divisor == 2) { int y; y = z % i; if(y!=0) { System. out. print("E="); System. out. println(i); } }}

System. out. println("上のEの値から好きなEの値を 1つ入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("E=");

System. out. println("上のEの値から好きなEの値を 1つ入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("E="); String str 5 = br. read. Line(); int x; x = Integer. parse. Int(str 5); int angou; br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("ファイル名をタイピングしてください:"); String filename=br. read. Line(); br=new Buffered. Reader(new File. Reader(filename)); String str; int k=0, h; int count=0, tmp; final int bit=0 x 0001; char[] cary; try{ Print. Writer pw = new Print. Writer(new Buffered. Writer(new File. Writer("暗号化. txt"))); while((str=br. read. Line())!=null) {

System. out. println(count+": "+str); cary=str. to. Char. Array(); System. out. print(count+": "); for(int i=0;

System. out. println(count+": "+str); cary=str. to. Char. Array(); System. out. print(count+": "); for(int i=0; i<cary. length; i++) { int sum=0; for(int j=0; j<16; j++) { int v=0; tmp = cary[i]&(bit<<(15 -j)); tmp >>= 15 -j; if(tmp==1) { System. out. print("1"); k = 15 -j; for(h=0; h<=k; h++) { if(h==0) { v = 1; }

else { v *= 2; } } } else { System. out. print("0"); k

else { v *= 2; } } } else { System. out. print("0"); k = 0; } sum += v; } System. out. println("["+cary[i]+"] "); System. out. println(Integer. to. String(sum, 16)); angou = sum % n; //mod計算(冪乗法) for(int w = 1; w <= x-1; w++) { angou *= sum;

angou = angou % n; if(w==x-1) { System. out. println("暗号化した 文字の数値は"+ angou +"です。"); System.

angou = angou % n; if(w==x-1) { System. out. println("暗号化した 文字の数値は"+ angou +"です。"); System. out. println("暗号化した文字 は"+(char)angou+"です。"); pw. println(angou); } } } System. out. println(); count++; } br. close(); pw. close(); } catch(IOException e){ System. out. println("入出力エラーです。"); }}}

import java. io. *; class fukugouka { public static void main(String[] args) throws IOException

import java. io. *; class fukugouka { public static void main(String[] args) throws IOException { Buffered. Reader br; System. out. println("NとEの値を入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("N="); String str 1 = br. read. Line(); int n; n = Integer. parse. Int(str 1); System. out. print("E="); String str 2 = br. read. Line(); int e; e = Integer. parse. Int(str 2);

int p=2; int c=1; while(c!=0) { c = n % p; if(c==0) { int

int p=2; int c=1; while(c!=0) { c = n % p; if(c==0) { int q; q = n / p; System. out. println("P="+p+", Q="+q); int a, b, f, m; a = p-1; b = q-1; int d=1, l; if(p>q) { f = a % b; if(f==0) {

l = a; System. out. println("L="+ l); } else { do { d++; l

l = a; System. out. println("L="+ l); } else { do { d++; l = a * d; f = l % b; }while(f!=0); System. out. println("L="+ l); } } else if(p<q) { m = b % a; if(m==0) {

l = b; System. out. println("L="+ l); } else { do { d++; l

l = b; System. out. println("L="+ l); } else { do { d++; l = b * d; m = l % a; }while(m!=0); System. out. println("L="+ l); } } else if(p==q) { l = a; System. out. println("L="+ l); } } p++; }

System. out. println("Lの値を入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("L="); String

System. out. println("Lの値を入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("L="); String str 3 = br. read. Line(); int z; z = Integer. parse. Int(str 3); int d = 1; int l = 48; int s=0, m; while(s!=1) { m = e * d; s = m % z; if(s==1) { System. out. println("Dの値は"+d); } d++; }

System. out. println("Dの値を入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("D="); String

System. out. println("Dの値を入力してください。"); br=new Buffered. Reader(new Input. Stream. Reader(System. in)); System. out. print("D="); String str 4 = br. read. Line(); int y; y = Integer. parse. Int(str 4); int fukugou, g; try { File. Reader in = new File. Reader("暗号化. txt"); Buffered. Reader br 1 = new Buffered. Reader(in); String line; while ((line = br 1. read. Line()) != null) { System. out. println(line); g = Integer. parse. Int(line); fukugou = g % n; for(int w = 1; w <= y-1; w++)

{ fukugou *= g; fukugou = fukugou % n; if(w==y-1) { System. out. println("復号化した文字

{ fukugou *= g; fukugou = fukugou % n; if(w==y-1) { System. out. println("復号化した文字 の数値は"+ fukugou +"です。"); System. out. println("復号化した文字 は"+(char)fukugou+"です。"); } } } br 1. close(); in. close(); } catch (IOException er) { System. out. println(er); }}}