社区讨论
Why?大佬求调。
P14949游戏人生参与者 3已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @mjxmebuc
- 此快照首次捕获于
- 2026/01/03 09:24 2 个月前
- 此快照最后确认于
- 2026/01/03 14:12 2 个月前
CPP
#include <bits/stdc++.h>
using namespace std ;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define lowbit(x) (x&(-x))
#define int long long
#define double long double
const int N = 5e5 + 9 ;
const int inf = 1e18 ;
const int mod = 998244353 ;
int n , k ;
int t ;
signed main ( ){
IOS ;
cin >> t ;
while ( t-- ){
cin >> n >> k ;
double n2 = sqrtl ( n ) ;
int m = pow ( n2 , (double)1 / (double) k ) ;
int ans ;
if ( pow ( (int)pow ( n , (double) 1 / (double) k ) , k ) == n ){
cout << (int)pow ( n , (double) 1 / (double) k ) << "\n" ;
continue ;
}
for ( int i = m + 10 ; i >= 1 ; --i ){
int w = pow ( i , k ) ;
if ( n % w == 0 ){
ans = i ;
break ;
}
}
cout << ans << "\n" ;
}
return 0 ;
}
应该是 的。
大致思路:
因为 的因数应该是 的,当然除了 本身。
所以,我先枚举 的 。
判断 是否可以整除 。当然,我会特判掉 的情况。
没有TLE,只对了3个点,其他均WA。link
不知道是精度不够,还是没有考虑到特殊情况……
大佬求调。
回复
共 4 条回复,欢迎继续交流。
正在加载回复...