ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#374 | #36. 「NOIP2009」Hankson 的趣味题 | wuenzi | 100 | 1616ms | 3480kb | C++23 | 2.6kb | 2025-04-22 17:49:09 | 2025-04-22 17:49:10 |
answer
#include<bits/stdc++.h>
#pragma optimize(1)
#pragma optimize(2)
#pragma optimize(3)
#pragma target("avx")
#pragma optimize("Ofast")
#pragma optimize("inline")
#pragma optimize("-fgcse")
#pragma optimize("-fgcse-lm")
#pragma optimize("-fipa-sra")
#pragma optimize("-ftree-pre")
#pragma optimize("-ftree-vrp")
#pragma optimize("-fpeephole2")
#pragma optimize("-ffast-math")
#pragma optimize("-fsched-spec")
#pragma optimize("unroll-loops")
#pragma optimize("-falign-jumps")
#pragma optimize("-falign-loops")
#pragma optimize("-falign-labels")
#pragma optimize("-fdevirtualize")
#pragma optimize("-fcaller-saves")
#pragma optimize("-fcrossjumping")
#pragma optimize("-fthread-jumps")
#pragma optimize("-funroll-loops")
#pragma optimize("-fwhole-program")
#pragma optimize("-freorder-blocks")
#pragma optimize("-fschedule-insns")
#pragma optimize("inline-functions")
#pragma optimize("-ftree-tail-merge")
#pragma optimize("-fschedule-insns2")
#pragma optimize("-fstrict-aliasing")
#pragma optimize("-fstrict-overflow")
#pragma optimize("-falign-functions")
#pragma optimize("-fcse-skip-blocks")
#pragma optimize("-fcse-follow-jumps")
#pragma optimize("-fsched-interblock")
#pragma optimize("-fpartial-inlining")
#pragma optimize("no-stack-protector")
#pragma optimize("-freorder-functions")
#pragma optimize("-findirect-inlining")
#pragma optimize("-fhoist-adjacent-loads")
#pragma optimize("-frerun-cse-after-loop")
#pragma optimize("inline-small-functions")
#pragma optimize("-finline-small-functions")
#pragma optimize("-ftree-switch-conversion")
#pragma optimize("-foptimize-sibling-calls")
#pragma optimize("-fexpensive-optimizations")
#pragma optimize("-funsafe-loop-optimizations")
#pragma optimize("inline-functions-called-once")
#pragma optimize("-fdelete-null-pointer-checks")
#define int long long
#define endl "\n"
using namespace std;
inline void read(int &z){
int x=0,w=1;
char ch=0;
while(ch<'0'||ch>'9'){
if(ch=='-')w=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=x*10+ch-'0';
ch=getchar();
}
z=x*w;
}
void solve(){
int a0,b0,a1,b1;
cin>>a0>>a1>>b0>>b1;
int ans=0;
for(int i=1;i*i<=b1;i++){
if(b1%i==0){
if(i%a1==0&&__gcd(i/a1,a0/a1)==1&&__gcd(b1/b0,b1/i)==1)ans++;
if((b1/i)%a1==0&&__gcd((b1/i)/a1,a0/a1)==1&&__gcd(b1/b0,b1/(b1/i))==1)ans++;
}
}
int l=sqrt(b1);
if(l*l==b1){
if(l%a1==0&&__gcd(l/a1,a0/a1)==1&&__gcd(b1/b0,b1/l)==1)ans--;
}
cout<<ans<<endl;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int Q=1;
cin>>Q;
while(Q--)solve();
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 10
Accepted
time: 3ms
memory: 3396kb
input:
1 1 1 1 1
output:
1
result:
ok 1 number(s): "1"
Test #2:
score: 10
Accepted
time: 2ms
memory: 3384kb
input:
2 10 10 10 10 5 1 2 10
output:
1 0
result:
ok 2 number(s): "1 0"
Test #3:
score: 10
Accepted
time: 1ms
memory: 3480kb
input:
10 90 2 9 18 73 1 98 196 61 1 75 300 21 1 17 1003 80 1 42 3738 72 18 47 2538 20 4 18 252 43 1 63 504...
output:
1 3 6 2 4 2 3 6 2 2
result:
ok 10 numbers
Test #4:
score: 10
Accepted
time: 0ms
memory: 3392kb
input:
50 93 1 20 20 41 1 96 288 95 1 37 1776 78 1 80 400 76 1 68 6732 44 1 41 287 29 1 32 160 44 1 90 90 7...
output:
6 6 2 1 2 2 6 6 4 1 3 2 8 3 6 1 2 1 2 4 4 2 2 6 10 6 5 2 2 4 4 2 2 4 2 2 2 6 8 2 12 2 4 1 2 2 4 2 4 4
result:
ok 50 numbers
Test #5:
score: 10
Accepted
time: 4ms
memory: 3344kb
input:
100 15 1 7 322 81 1 23 1127 91 1 8 664 4 1 38 2622 90 1 17 1343 90 6 65 780 1 1 4 196 91 7 59 4543 9...
output:
2 2 4 2 2 2 3 2 12 1 2 2 2 2 2 6 1 2 2 4 2 2 2 2 5 3 7 4 2 7 2 2 2 3 2 2 4 1 2 1 2 2 4 2 2 4 6 2 4 2...
result:
ok 100 numbers
Test #6:
score: 10
Accepted
time: 24ms
memory: 3440kb
input:
100 30793 1 7409 25501778 26905 1 9945 181058670 27965 5 22144 288868480 22065 5 15751 478121605 201...
output:
4 12 16 4 18 8 4 4 16 2 12 4 8 4 4 4 4 2 12 8 8 8 2 2 2 2 2 2 8 4 4 4 4 2 8 8 4 2 16 4 2 24 8 8 8 2 ...
result:
ok 100 numbers
Test #7:
score: 10
Accepted
time: 61ms
memory: 3464kb
input:
300 15530 2 13320 99806760 18141 1 30071 489916732 1968 3 30808 169782888 23504 8 7616 3008320 20559...
output:
18 2 2 4 6 2 4 4 2 2 4 20 4 8 16 4 8 8 10 2 4 8 2 8 6 2 2 4 4 4 12 4 8 12 16 8 2 8 4 16 10 2 4 2 4 2...
result:
ok 300 numbers
Test #8:
score: 10
Accepted
time: 97ms
memory: 3344kb
input:
600 16199 1 17707 312245238 27421 1 3385 6468735 20012 1 19596 42934836 1856 1 10570 177290610 4750 ...
output:
2 4 8 8 2 8 3 12 2 12 8 2 4 8 6 2 4 8 8 8 2 6 4 6 24 16 8 2 4 8 2 6 2 8 2 16 4 4 12 4 2 2 4 4 4 20 2...
result:
ok 600 numbers
Test #9:
score: 10
Accepted
time: 445ms
memory: 3344kb
input:
2000 28805 1 4 100029072 7275 3 5 500082120 13520 20 6 300083100 13824 12 10 500006220 27389 1 6 300...
output:
1 1 2 2 2 3 1 3 1 1 4 2 2 4 2 2 2 1 2 4 2 1 1 1 4 2 1 2 2 4 2 2 2 1 1 2 2 2 1 2 2 4 1 2 2 1 1 1 1 1 ...
result:
ok 2000 numbers
Test #10:
score: 10
Accepted
time: 979ms
memory: 3348kb
input:
2000 21222 2 999993719 1999987438 9034 2 999978442 1999956884 24921 1 999975441 1999950882 8481 1 99...
output:
2 4 4 4 16 4 16 0 2 8 0 16 2 2 24 0 0 4 8 2 16 36 2 4 2 0 16 4 0 8 8 2 32 4 2 4 4 32 4 16 0 8 4 0 4 ...
result:
ok 2000 numbers