题解

45 条题解

  • 0
    @ 2012-11-16 22:29:30

    这个大水题。。。我就搞不懂楼下怎么写了这么多

    点这里查看程序源码+详细题解

  • 0
    @ 2012-11-16 22:07:14

    var

    a,b,c,d,f,g:longint;n:longint;

    begin

    read(n);

    for a:= 2 to (n div 2)+1 do  begin

     g:=(a div 2)+1;

    for c:=2 to g do

    if a mod c=0 then d:=1;

    if d=0 then

    for b:=2 to (n div 2)+1 do  begin

    for c:=2 to g do

    if b mod c=0 then f:=1;

    if (f=0)and(a*b=n) then if a>b then begin write(a); exit end

    else begin write(b); exit end;

    f:=0;

    end;

    d:=0;f:=0;

    end;

    end.

  • 0
    @ 2012-11-16 20:45:18

    第二个发题解,第8个AC

    ├ 测试数据 01:答案正确... (8ms, 404KB)

    ├ 测试数据 02:答案正确... (16ms, 404KB)

    ├ 测试数据 03:答案正确... (16ms, 404KB)

    ├ 测试数据 04:答案正确... (31ms, 404KB)

    ├ 测试数据 05:答案正确... (31ms, 404KB)

    ├ 测试数据 06:答案正确... (16ms, 404KB)

    ├ 测试数据 07:答案正确... (0ms, 404KB)

    ├ 测试数据 08:答案正确... (16ms, 404KB)

    ├ 测试数据 09:答案正确... (0ms, 404KB)

    ├ 测试数据 10:答案正确... (0ms, 400KB)

    ---|---|---|---|---|---|---|---|-

    Accepted / 100 / 138ms / 404KB

  • 0
    @ 2012-11-16 19:39:55

    这数据应该不是原题的数据吧(废话)

    不过数据是挺弱的,刚开始想多了,以为还包括24(输出3)2*2*2*2*2*2*2*2*7这样的数,还好没有,都是每个质数的一次方,希望竞赛的数据也如此啊!

    代码:

                    program P1773;

                    var

                     i,n,k:integer;

                    begin

                    read(n);

                    for i:=2 to n-1 do

                     if n mod i=0 then begin writeln(n div i); break;                 end; 

                     end.

    (为了防抄袭,打了许多空格)

    • @ 2014-10-29 21:42:58

      呵呵,还是能抄嘛。

  • -1
    @ 2017-07-23 11:43:30

    我的代码效率很低...

    但我想简单说一下思路:

    1.既然这个数是两个质因数的乘积,记此数为n,则他的因数一定是 1,a,b,n (a*b=0,a和b为素数)

    2.a与b中,假设a<b,那么有 a<=sqrt(n) 和 b>=sqrt(n)

    3.n只能被a,b整除,因为a和b不能被分解成其他数的乘积(唯一分解定理)

    然后知道了上面这些,这道题就能快速的解决出来了!

    #include<iostream>
    #include<cmath>
    using namespace std;
    int n;
    int main () {
        
        ios::sync_with_stdio(false);
        cin>>n;
        for(int i=2;i<=sqrt(n);i++) 
          if (n%i==0) {
              cout<<n/i;    
              break;
          }
        return 0;
    }
    

信息

ID
1773
难度
3
分类
(无)
标签
(无)
递交数
2133
已通过
1044
通过率
49%
被复制
4
上传者