運用for迴圈使i從1數到sqrt(input) //輸入取根號(記得用浮點數來紀錄)
記錄所有可整除input 的i值
並加入陣列之中
輸出時先把陣列內容輸出
再輸出input除陣列 //從末端到起始
如果input整除陣列元素並且陣列元素不等於squt(input)
就輸出input除陣列元素的值
例如36 36取根號為6
陣列元素為 1 2 3 4 6
而36除陣列元素為 36 18 12 9 6 (因此從陣列末端輸出)
同學我用你的作法好像 TLE 餒...
結果我也TLE==
扣:
#include<bits/stdc++.h>
using namespace std;
#define int long long
//TLE
signed main(){
ios::sync_with_stdio(0),cin.tie(0);
int n,sqn,l;
vector<int>a;
while(cin>>n){
a.clear();
sqn=pow(n,0.5);
for(int i=2;i<=sqn;i+=1+(i%2&&n%2))if(n%i==0)a.push_back(i);
l=a.size();
cout<<"1 ";
for(int i=0;i<l;i++)cout<<a[i]<<" ";
for(int i=l-1;i>=0;i--)cout<<n/a[i]<<" ";
cout<<n<<"\n";
}
}