QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#23762#2965. RSA Mistakemaze#AC ✓18ms3784kbC++141.5kb2022-03-19 13:04:362022-04-30 04:05:58

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-04-30 04:05:58]
  • 评测
  • 测评结果:AC
  • 用时:18ms
  • 内存:3784kb
  • [2022-03-19 13:04:36]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define ld long double

ll qmul(ll a, ll b, ll m)
{
    a %= m;
    b %= m;
    ll r = a * b, s = (ld)a * b / m;
    return ((r - m * s) % m + m) % m;
}

ll qpow(ll a, ll b, ll m)
{
    ll res = 1;
    while (b)
    {
        if (b & 1)
            res = qmul(res, a, m);
        a = qmul(a, a, m);
        b >>= 1;
    }
    return res;
}

bool miller_rabin(ll n, ll base)
{
    ll n2 = n - 1;
    ll s = 0;
    while (n2 % 2 == 0)
        n2 /= 2, s++;

    ll t = qpow(base, n2, n);
    if (t == 1 || t == n - 1)
        return true;
    for (s--; s >= 0; s--)
    {
        if ((t = qmul(t, t, n)) == n - 1)
            return true;
    }
    return false;
}

bool isprime(ll n)
{
    static ll base[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37};
    if (n < 2)
        return false;
    for (int i = 0; i < 12 && base[i] < n; i++)
        if (!miller_rabin(n, base[i]))
            return false;
    return true;
}

int main()
{
    ll a, b;
    scanf("%lld%lld", &a, &b);
    if (__gcd(a, b) != 1)
    {
        puts("no credit");
        return 0;
    }
    for (ll i = 2; i < 1000010; i++)
    {
        if (a % (i * i) == 0 || b % (i * i) == 0)
        {
            puts("no credit");
            return 0;
        }
    }

    if (!isprime(a) || !isprime(b))
        puts("partial credit");
    else
        puts("full credit");
    return 0;
}

详细

Test #1:

score: 100
Accepted
time: 18ms
memory: 3784kb

input:

13 23

output:

full credit

result:

ok single line: 'full credit'

Test #2:

score: 0
Accepted
time: 18ms
memory: 3784kb

input:

35 6

output:

partial credit

result:

ok single line: 'partial credit'

Test #3:

score: 0
Accepted
time: 2ms
memory: 3668kb

input:

4 5

output:

no credit

result:

ok single line: 'no credit'

Test #4:

score: 0
Accepted
time: 1ms
memory: 3636kb

input:

17 17

output:

no credit

result:

ok single line: 'no credit'

Test #5:

score: 0
Accepted
time: 1ms
memory: 3708kb

input:

15 21

output:

no credit

result:

ok single line: 'no credit'

Test #6:

score: 0
Accepted
time: 3ms
memory: 3712kb

input:

545528636581 876571629707

output:

no credit

result:

ok single line: 'no credit'

Test #7:

score: 0
Accepted
time: 9ms
memory: 3620kb

input:

431348146441 3

output:

no credit

result:

ok single line: 'no credit'

Test #8:

score: 0
Accepted
time: 18ms
memory: 3624kb

input:

584803025179 200560490130

output:

partial credit

result:

ok single line: 'partial credit'

Test #9:

score: 0
Accepted
time: 18ms
memory: 3708kb

input:

725769156026 520807975733

output:

partial credit

result:

ok single line: 'partial credit'

Test #10:

score: 0
Accepted
time: 3ms
memory: 3628kb

input:

94785999423 831843785340

output:

no credit

result:

ok single line: 'no credit'

Test #11:

score: 0
Accepted
time: 3ms
memory: 3624kb

input:

962631984045 923583932904

output:

no credit

result:

ok single line: 'no credit'

Test #12:

score: 0
Accepted
time: 3ms
memory: 3624kb

input:

983892174682 596267564620

output:

no credit

result:

ok single line: 'no credit'

Test #13:

score: 0
Accepted
time: 18ms
memory: 3664kb

input:

988586693791 523281177667

output:

full credit

result:

ok single line: 'full credit'

Test #14:

score: 0
Accepted
time: 14ms
memory: 3628kb

input:

768483880537 958632922673

output:

full credit

result:

ok single line: 'full credit'

Test #15:

score: 0
Accepted
time: 13ms
memory: 3780kb

input:

695320496641 992131878511

output:

full credit

result:

ok single line: 'full credit'

Test #16:

score: 0
Accepted
time: 18ms
memory: 3732kb

input:

619864432127 575182057589

output:

full credit

result:

ok single line: 'full credit'

Test #17:

score: 0
Accepted
time: 14ms
memory: 3584kb

input:

574224928327 554785761851

output:

full credit

result:

ok single line: 'full credit'

Test #18:

score: 0
Accepted
time: 0ms
memory: 3512kb

input:

2 2

output:

no credit

result:

ok single line: 'no credit'

Test #19:

score: 0
Accepted
time: 18ms
memory: 3780kb

input:

999999999989 999999999961

output:

full credit

result:

ok single line: 'full credit'

Test #20:

score: 0
Accepted
time: 3ms
memory: 3712kb

input:

999999999989 999999999989

output:

no credit

result:

ok single line: 'no credit'

Test #21:

score: 0
Accepted
time: 14ms
memory: 3624kb

input:

2 999999999989

output:

full credit

result:

ok single line: 'full credit'

Test #22:

score: 0
Accepted
time: 18ms
memory: 3580kb

input:

999999999989 2

output:

full credit

result:

ok single line: 'full credit'

Test #23:

score: 0
Accepted
time: 5ms
memory: 3716kb

input:

799337241719 790574179457

output:

no credit

result:

ok single line: 'no credit'

Test #24:

score: 0
Accepted
time: 2ms
memory: 3784kb

input:

999962000357 999944000663

output:

no credit

result:

ok single line: 'no credit'

Test #25:

score: 0
Accepted
time: 3ms
memory: 3744kb

input:

2 4

output:

no credit

result:

ok single line: 'no credit'

Test #26:

score: 0
Accepted
time: 2ms
memory: 3780kb

input:

4 2

output:

no credit

result:

ok single line: 'no credit'

Test #27:

score: 0
Accepted
time: 3ms
memory: 3712kb

input:

21 15

output:

no credit

result:

ok single line: 'no credit'

Test #28:

score: 0
Accepted
time: 3ms
memory: 3716kb

input:

5 4

output:

no credit

result:

ok single line: 'no credit'

Test #29:

score: 0
Accepted
time: 2ms
memory: 3712kb

input:

125 7

output:

no credit

result:

ok single line: 'no credit'

Test #30:

score: 0
Accepted
time: 18ms
memory: 3716kb

input:

999999999969 999999999929

output:

partial credit

result:

ok single line: 'partial credit'

Test #31:

score: 0
Accepted
time: 3ms
memory: 3744kb

input:

428571428541 999999999929

output:

no credit

result:

ok single line: 'no credit'

Test #32:

score: 0
Accepted
time: 18ms
memory: 3632kb

input:

949999999373 714080161721

output:

partial credit

result:

ok single line: 'partial credit'

Test #33:

score: 0
Accepted
time: 18ms
memory: 3580kb

input:

757523014201 616759792799

output:

partial credit

result:

ok single line: 'partial credit'

Test #34:

score: 0
Accepted
time: 18ms
memory: 3728kb

input:

945410323183 793541296879

output:

partial credit

result:

ok single line: 'partial credit'

Test #35:

score: 0
Accepted
time: 18ms
memory: 3712kb

input:

668134918943 250092815711

output:

partial credit

result:

ok single line: 'partial credit'

Test #36:

score: 0
Accepted
time: 18ms
memory: 3628kb

input:

593159028797 378923570503

output:

partial credit

result:

ok single line: 'partial credit'

Test #37:

score: 0
Accepted
time: 18ms
memory: 3632kb

input:

673663445657 685555556761

output:

partial credit

result:

ok single line: 'partial credit'

Test #38:

score: 0
Accepted
time: 17ms
memory: 3512kb

input:

615590502287 730111591619

output:

partial credit

result:

ok single line: 'partial credit'

Test #39:

score: 0
Accepted
time: 18ms
memory: 3632kb

input:

737474530367 339061475591

output:

partial credit

result:

ok single line: 'partial credit'

Test #40:

score: 0
Accepted
time: 17ms
memory: 3632kb

input:

547304948893 825051092141

output:

partial credit

result:

ok single line: 'partial credit'

Test #41:

score: 0
Accepted
time: 17ms
memory: 3580kb

input:

888259990703 349508614421

output:

partial credit

result:

ok single line: 'partial credit'

Test #42:

score: 0
Accepted
time: 12ms
memory: 3712kb

input:

394206923881 679230181703

output:

no credit

result:

ok single line: 'no credit'

Test #43:

score: 0
Accepted
time: 4ms
memory: 3784kb

input:

199036422587 813176211779

output:

no credit

result:

ok single line: 'no credit'

Test #44:

score: 0
Accepted
time: 1ms
memory: 3728kb

input:

385196736923 358517468791

output:

no credit

result:

ok single line: 'no credit'

Test #45:

score: 0
Accepted
time: 17ms
memory: 3628kb

input:

540003052801 543341442493

output:

no credit

result:

ok single line: 'no credit'

Test #46:

score: 0
Accepted
time: 1ms
memory: 3784kb

input:

529883073493 557936045561

output:

no credit

result:

ok single line: 'no credit'

Test #47:

score: 0
Accepted
time: 1ms
memory: 3716kb

input:

519207113731 326410289771

output:

no credit

result:

ok single line: 'no credit'

Test #48:

score: 0
Accepted
time: 2ms
memory: 3744kb

input:

530779897367 729543471779

output:

no credit

result:

ok single line: 'no credit'

Test #49:

score: 0
Accepted
time: 2ms
memory: 3708kb

input:

623202833611 876138576449

output:

no credit

result:

ok single line: 'no credit'

Test #50:

score: 0
Accepted
time: 2ms
memory: 3708kb

input:

741753647069 741753647069

output:

no credit

result:

ok single line: 'no credit'

Test #51:

score: 0
Accepted
time: 0ms
memory: 3708kb

input:

548039 445335943361

output:

no credit

result:

ok single line: 'no credit'

Test #52:

score: 0
Accepted
time: 3ms
memory: 3580kb

input:

644483448731 611801529223

output:

no credit

result:

ok single line: 'no credit'

Test #53:

score: 0
Accepted
time: 2ms
memory: 3636kb

input:

498556835561 412089307169

output:

no credit

result:

ok single line: 'no credit'

Test #54:

score: 0
Accepted
time: 1ms
memory: 3668kb

input:

602312422583 602312422583

output:

no credit

result:

ok single line: 'no credit'

Test #55:

score: 0
Accepted
time: 2ms
memory: 3716kb

input:

517277 424820460851

output:

no credit

result:

ok single line: 'no credit'