M. Minimum LCM

time limit per test

2 seconds

memory limit per test

512 megabytes

You are given an integer n.

Your task is to find two positive (greater than 0) integers a and b such that a+b=n and the least common multiple (LCM) of a and b is the minimum among all possible values of a and b. If there are multiple answers, you can print any of them.

Input

The first line contains a single integer t (1≤t≤100) --- the number of test cases.

The first line of each test case contains a single integer n (2≤n≤109).

Output

For each test case, print two positive integers a and b --- the answer to the problem. If there are multiple answers, you can print any of them.

Example

Input

Copy

复制代码

4

2

9

5

10

Output

Copy

复制代码
1 1
3 6
1 4
5 5

Note

In the second example, there are 8 possible pairs of a and b:

  • a=1, b=8, LCM(1,8)=8;
  • a=2, b=7, LCM(2,7)=14;
  • a=3, b=6, LCM(3,6)=6;
  • a=4, b=5, LCM(4,5)=20;
  • a=5, b=4, LCM(5,4)=20;
  • a=6, b=3, LCM(6,3)=6;
  • a=7, b=2, LCM(7,2)=14;
  • a=8, b=1, LCM(8,1)=8.

In the third example, there are 5 possible pairs of a and b:

  • a=1, b=4, LCM(1,4)=4;
  • a=2, b=3, LCM(2,3)=6;
  • a=3, b=2, LCM(3,2)=6;
  • a=4, b=1, LCM(4,1)=4.

解题说明:此题是一道数学题,为了保证最小公倍数最小,直接从2到sqrt(n)遍历即可。

cpp 复制代码
#include<stdio.h>
#include<math.h>
int main() 
{
    int t, n, i;
    scanf("%d", &t);
    while (t--) 
    {
        int r = 1;
        scanf("%d", &n);
        for (i = 2; i <= sqrt(n); i++) 
        {
            if (n % i == 0) 
            {
                r = (n / i);
                break;
            }
        }
        printf("%d %d\n", r, n - r);
    }
    return 0;
}
相关推荐
charlie1145141912 天前
通用GUI编程技术——图形渲染实战(三十六)——Constant Buffer与数据传递:CPU-GPU通信通道
开发语言·c++·windows·c·图形渲染·win32
17岁boy想当攻城狮4 天前
GlibC 在线程里引发use-after-free退出时才崩溃原因与分析
c·glibc
少司府5 天前
C++基础入门:初识模板
开发语言·c++·c·模板·函数模板·类模板·泛型编程
REDcker5 天前
跨平台编译详解 工具链配置与工程化实践
linux·c++·windows·macos·c·跨平台·编译
小辉同志6 天前
Epoll+线程池
开发语言·c++·c·线程池·epoll
光电笑映9 天前
深入C++异常:栈展开、异常安全与工程规范
开发语言·c++·c
程序员-King.11 天前
【基础分析】—— 条件变量wait(lock, 谓词)
c++·c·多线程·条件变量
REDcker11 天前
C++ std::move实现原理与vector扩容移动语义
开发语言·c++·c
itman30113 天前
C语言、C++与C#深度研究:从底层到现代开发演进全解析
c语言·c++·c·内存管理·编译模型
charlie11451419113 天前
嵌入式现代C++教程实战篇第12篇:C宏时代的LED驱动 —— 能跑但不优雅
c语言·c++·stm32·单片机·嵌入式硬件·c