結果

問題 No.816 Beautiful tuples
ユーザー tails
提出日時 2019-04-19 22:43:44
言語 C
(gcc 8.2.0)
結果
AC  
実行時間 2 ms
コード長 267 Byte
コンパイル時間 76 ms
使用メモリ 968 KB
最終ジャッジ日時 2019-07-06 03:52:01

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
01.txt AC 1 ms
968 KB
02.txt AC 1 ms
968 KB
03.txt AC 1 ms
964 KB
04.txt AC 1 ms
968 KB
05.txt AC 1 ms
968 KB
06.txt AC 1 ms
968 KB
07.txt AC 1 ms
968 KB
08.txt AC 1 ms
968 KB
09.txt AC 1 ms
964 KB
10.txt AC 1 ms
964 KB
11.txt AC 1 ms
968 KB
12.txt AC 2 ms
964 KB
13.txt AC 2 ms
968 KB
14.txt AC 1 ms
968 KB
15.txt AC 1 ms
964 KB
テストケース一括ダウンロード
コンパイルメッセージ
main.c:1:1: 警告: データ定義が型または記憶域クラスを持っていません
 a,b,c,d,r;
 ^
main.c:1:1: 警告: 型がデフォルトの ‘int’ に ‘a’ の宣言内でなります [-Wimplicit-int]
main.c:1:3: 警告: 型がデフォルトの ‘int’ に ‘b’ の宣言内でなります [-Wimplicit-int]
 a,b,c,d,r;
   ^
main.c:1:5: 警告: 型がデフォルトの ‘int’ に ‘c’ の宣言内でなります [-Wimplicit-int]
 a,b,c,d,r;
     ^
main.c:1:7: 警告: 型がデフォルトの ‘int’ に ‘d’ の宣言内でなります [-Wimplicit-int]
 a,b,c,d,r;
       ^
main.c:1:9: 警告: 型がデフォルトの ‘int’ に ‘r’ の宣言内でなります [-Wimplicit-int]
 a,b,c,d,r;
         ^
main.c:2:1: 警告: 戻り値の型をデフォルトの ‘int’ にします [-Wimplicit-int]
 f(x){
 ^
main.c: 関数 ‘f’ 内:
main.c:2:1: 警告: ‘x’ の型をデフォルトの ‘int’ にします [-Wimplicit-int]
main.c: トップレベル:
main.c:5:1: 警告: 戻り値の型をデフォルトの ‘int’ にします [-Wimplicit-int]
 main(){
 ^~~~
main.c: 関数 ‘main’ 内:
main.c:7:2: 警告: 関数 ‘scanf’ の暗黙的な宣言です [-Wimplicit-function-declaration]
  scanf("%d%d",&a,&b);
  ^~~~~
main.c:7:2: 警告: 組み込み関数 ‘scanf’ の互換性がない暗黙的な宣言です
main.c:7:2: 備考: include ‘<stdio.h>’ or provide a declaration of ‘scanf’
main.c:1:1:
+#include <stdio.h>
 a,b,c,d,r;
main.c:7:2:
  scanf("%d%d",&a,&b);
  ^~~~~
main.c:8:4: 警告: 関数 ‘sqrt’ の暗黙的な宣言です [-Wimplicit-function-declaration]
  d=sqrt(a+b);
    ^~~~
main.c:8:4: 警告: 組み込み関数 ‘sqrt’ の互換性がない暗黙的な宣言です
main.c:8:4: 備考: include ‘<math.h>’ or provide a declaration of ‘sqrt’
main.c:1:1:
+#include <math.h>
 a,b,c,d,r;
main.c:8:4:
  d=sqrt(a+b);
    ^~~~
main.c:12:5: 警告: 関数 ‘printf’ の暗黙的な宣言です 

ソースコード

diff #
a,b,c,d,r;
f(x){
	return x!=a&&x!=b&&(a+x)%b==0&&(b+x)%a==0;
}
main(){
	r=-1;
	scanf("%d%d",&a,&b);
	d=sqrt(a+b);
	for(c=1;c<=d;++c){
		if((a+b)%c==0){
			if(f(c)){
				printf("%d",c);
				exit(0);
			}
			if(f((a+b)/c)){
				r=(a+b)/c;
			}
		}
	}
	printf("%d",r);
}
0