1. 程式人生 > 實用技巧 >Codeforces Round #655 題解

Codeforces Round #655 題解

https://codeforces.com/contest/1372

A

眾所周知,\(1+1\neq 1\)

所以輸出 \(n\)\(1\) 即可。

時間複雜度 \(O(tn)\)

#include <bits/stdc++.h>
using namespace std;
int t;
int n;
int main() {
    scanf("%d",&t);
    while(t--) {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            printf("1 ");
        puts("");
    }
    return 0;
}

B

\(x\)\(n\) 最小的質因數。

此時答案為 \(\frac{n}{x},n-\frac{n}{x}\)

於是可以 \(O(\sqrt{n})\) 解決每組資料。

#include <bits/stdc++.h>
using namespace std;
int t;
int n,fl;
int main() {
    scanf("%d",&t);
    while(t--) {
        scanf("%d",&n);
        fl=1;
        for(int i=2;i*i<=n;i++)
            if(n%i==0) {
                printf("%d %d\n",n/i,n-n/i);
                fl=0;
                break;
            }
        if(fl)
            printf("%d %d\n",1,n-1);
    }
    return 0;
}