竞赛
考级
#include <iostream> #include <cmath> using namespace std; int main() { int n; cin >> n; for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { // 如果i是n的因数,那么n / i也是n的因数,且n / i 更大 cout << n / i << endl; break; } } return 0; }
皮皮虾队员DavidDeng
#include<bits/stdc++.h> using namespace std; int main(){ int a; cin>>a; for(int i=2;i<=sqrt(a);i++){ if(a%i==0){ cout<<a/i; return 0; } } }
LS_YZY
#include<bits/stdc++.h> using namespace std; bool p(int n){ for(int i=2;ii<=n;i++)if(n%i==0)return 0; return 1; } int main(){ int n; cin>>n; for(int i=2;ii<=n;i++){ if(n%i==0){ int h=n/i; if(p(i)&&p(h)){ cout<<h; return 0; } } } }
一个老六
zsy
这里要注意千万不要直接求最大的质因数,这样测试样例会有时间超标的结果。 要利用因数的特点:因数都是一对一对出现的,所以可以求那个较小的质因数。
毛奕程
共25条