acwing 4618. 两个素数

两个素数

原题链接:https://www.acwing.com/problem/content/4621/

思路

本来我以为是要判断是不是素数

但是y总后来讲的时候,我才发现
题目保证一定有解,也就是说x一定会由两个素数相乘得到。直接枚举即可,虽然会枚举到合数,但是x一定是两个素数相乘得到的,也就是说比如18 = 2 * 9。 18不会作为x给出数据

代码

#include<iostream>

using namespace std;

int main()
{
    int x;
    cin >> x;
    for(int i = 2; ;i ++)
    {
        if(x % i == 0) 
        {
            cout << i << ' ' << x / i ;
            break;
        }
    }
    
    return 0;
}
posted @ 2022-09-24 23:25  r涤生  阅读(20)  评论(0编辑  收藏  举报