[[練習問題]]

 #include <stdio.h>
 
 void yurika(int , int );
 
 int main()
 {
 	int a, b;
 
 	for (a = 1; a < 101; a++)
 		for (b = 1; b < 101; b++)
 			yurika(a,b);
 			
 	return 0;
 }
 
 void yurika(int a, int b)
 {
 	int a1, a2, i;
 
 	printf("√%2d / √%2d = ", a, b);
 
 	if (a == b) { printf("1\n"); return; }
 
 	if (a % b == 0) {	a = a / b;	b = 1;	}
 	else	a = a * b;
 
 	for (i = 1; i*i <= a; i++)
 		if (a % (i*i) == 0) { a1 = i; a2 = a / (i*i); }
 
 	for (i = 1; i < 15; i++)
 		if (a1 % i == 0 && b % i == 0) { a1 = a1 / i; b = b / i; }
 
 	if (a1 == 1 && b == 1) {
 		printf("√%d\n", a2);
 		return;	}
 
 	else if (a2 == 1 && b == 1) {
 		printf("%d\n", a1);
 		return;	}
 
 	else if (b == 1) {
 		printf("%d√%d\n", a1, a2);
 		return;	}
 
 	else if (a2 == 1) {
	 	printf("%d / %d", a1, b);
 		return;	}
 
 	else if (a1 == 1) {
 		printf("√%d / %d\n", a2, b);
 		return;	}
 
 	else
 		printf("%d√%d / %d\n", a1, a2, b);
 	return;
 }


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS