Submission #69793178
Source Code Expand
Copy
#include <stdio.h>#include <stdlib.h>#include <inttypes.h>int cmp(const void* x, const void* y) {uint64_t a = *(const uint64_t*)x, b = *(const uint64_t*)y;return a < b ? -1 : a > b;}int kore;int sore[114514];uint64_t are[114514];int ans_cnt;uint64_t* ans;void sumipe(int pos, uint64_t cur) {if (pos >= kore) {ans[ans_cnt++] = cur;} else {int i;
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
int cmp(const void* x, const void* y) {
uint64_t a = *(const uint64_t*)x, b = *(const uint64_t*)y;
return a < b ? -1 : a > b;
}
int kore;
int sore[114514];
uint64_t are[114514];
int ans_cnt;
uint64_t* ans;
void sumipe(int pos, uint64_t cur) {
if (pos >= kore) {
ans[ans_cnt++] = cur;
} else {
int i;
for (i = 0; i <= sore[pos]; i++) {
sumipe(pos + 1, cur);
cur *= are[pos];
}
}
}
int main(void) {
uint64_t X, Y;
uint64_t asumisu, mizuhasu;
uint64_t i;
int num, j;
if (scanf("%" SCNu64 "%" SCNu64, &X, &Y) != 2) return 1;
/* GCD */
asumisu = X - 2015;
mizuhasu = Y - 2015;
while (mizuhasu > 0) {
uint64_t kitaeri = asumisu % mizuhasu;
asumisu = mizuhasu;
mizuhasu = kitaeri;
}
/* 素因数分解 */
for (i = 2; i * i <= asumisu; i++) {
if (asumisu % i == 0) {
are[kore] = i;
while (asumisu % i == 0) {
sore[kore]++;
asumisu /= i;
}
kore++;
}
}
if (asumisu > 1) {
are[kore] = asumisu;
sore[kore] = 1;
kore++;
}
/* 答えの数を計算 */
num = 1;
for (j = 0; j < kore; j++) {
num *= sore[j] + 1;
}
/* 答えを求める */
ans = malloc(sizeof(*ans) * num);
if (ans == NULL) return 2;
sumipe(0, 1);
qsort(ans, ans_cnt, sizeof(*ans), cmp);
for (j = 0; j < ans_cnt; j++) {
printf("%" PRIu64 "\n", ans[j]);
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | A - Next TTPC 2 |
| User | mikecat |
| Language | C (gcc 12.2.0) |
| Score | 200 |
| Code Size | 1441 Byte |
| Status | AC |
| Exec Time | 3 ms |
| Memory | 1860 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 200 / 200 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample-01.txt, sample-02.txt, sample-03.txt |
| All | 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 05-01.txt, 05-02.txt, 05-03.txt, 05-04.txt, 05-05.txt, sample-01.txt, sample-02.txt, sample-03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01-01.txt | AC | 1 ms | 1740 KiB |
| 01-02.txt | AC | 1 ms | 1612 KiB |
| 01-03.txt | AC | 0 ms | 1744 KiB |
| 01-04.txt | AC | 1 ms | 1728 KiB |
| 01-05.txt | AC | 0 ms | 1764 KiB |
| 01-06.txt | AC | 0 ms | 1648 KiB |
| 01-07.txt | AC | 1 ms | 1584 KiB |
| 01-08.txt | AC | 0 ms | 1728 KiB |
| 01-09.txt | AC | 1 ms | 1644 KiB |
| 01-10.txt | AC | 0 ms | 1628 KiB |
| 02-01.txt | AC | 1 ms | 1624 KiB |
| 02-02.txt | AC | 1 ms | 1736 KiB |
| 02-03.txt | AC | 0 ms | 1664 KiB |
| 02-04.txt | AC | 0 ms | 1764 KiB |
| 02-05.txt | AC | 0 ms | 1744 KiB |
| 03-01.txt | AC | 1 ms | 1628 KiB |
| 03-02.txt | AC | 0 ms | 1636 KiB |
| 03-03.txt | AC | 1 ms | 1580 KiB |
| 03-04.txt | AC | 1 ms | 1736 KiB |
| 03-05.txt | AC | 1 ms | 1724 KiB |
| 04-01.txt | AC | 1 ms | 1860 KiB |
| 04-02.txt | AC | 1 ms | 1728 KiB |
| 04-03.txt | AC | 1 ms | 1760 KiB |
| 04-04.txt | AC | 1 ms | 1680 KiB |
| 04-05.txt | AC | 1 ms | 1640 KiB |
| 05-01.txt | AC | 2 ms | 1756 KiB |
| 05-02.txt | AC | 2 ms | 1732 KiB |
| 05-03.txt | AC | 2 ms | 1764 KiB |
| 05-04.txt | AC | 3 ms | 1620 KiB |
| 05-05.txt | AC | 3 ms | 1644 KiB |
| sample-01.txt | AC | 0 ms | 1636 KiB |
| sample-02.txt | AC | 0 ms | 1612 KiB |
| sample-03.txt | AC | 0 ms | 1740 KiB |