結果
| 問題 |
No.152 貯金箱の消失
|
| コンテスト | |
| ユーザー |
suppy193
|
| 提出日時 | 2015-07-02 12:55:38 |
| 言語 | C90 (gcc 12.3.0) |
| 結果 |
AC
|
| 実行時間 | 59 ms / 5,000 ms |
| コード長 | 849 bytes |
| コンパイル時間 | 132 ms |
| コンパイル使用メモリ | 24,064 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-26 03:15:06 |
| 合計ジャッジ時間 | 910 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 12 |
コンパイルメッセージ
main.c: In function ‘main’:
main.c:34:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
34 | scanf("%lld", &l);
| ^~~~~~~~~~~~~~~~~
ソースコード
#include <stdio.h>
#include <math.h>
int each_prime(long long int m, long long int n) {
long long int r;
long long int tmp;
if(m < n){
tmp = m;
m = n;
n = tmp;
}
for(;;){
if(n == 1){
return 1;
}
r = m % n;
if(r == 0){
return 0;
}
else if(r == 1){
return 1;
}
m = n;
n = r;
}
//printf("%d\n", flag);
//return flag;
}
int main(void) {
long long int m, n, l;
long long int a, b, c;
long long int count;
scanf("%lld", &l);
count = 0;
for(m = 2;m < sqrt(l / 4);m++){
for(n = 1;n < m;n++){
//printf("%d, %d\n", m, n);
if((m - n) % 2 == 1 && each_prime(m, n) == 1){
a = m * m - n * n;
b = 2 * m * n;
c = m * m + n * n;
if((a + b + c) * 4 <= l){
//printf("%d, %d:(%d, %d, %d)\n", m, n, a, b, c);
count++;
}
}
}
}
printf("%lld\n", count % 1000003);
return 0;
}
suppy193