zoukankan      html  css  js  c++  java
  • Codeforces Round #326 (Div. 2)-Duff in Love

    题意:

      一个数x被定义为lovely number需要满足这样的条件:不存在一个数a(a>1),使得a的完全平方是x的因子(即x % a2  != 0)。

      给你一个数n,求出n的因子中为lovely number的最大因子。

    思路:

      由于1<=n<=0=109,所以我们只要从1到找sqrt(n)就好,然后先从最大因子开始判断是否满足lovely number的条件,当满足时直接出输出即可.

    代码如下:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <fstream>
     5 #include <ctime>
     6 #include <cmath>
     7 #include <cstdlib>
     8 #include <algorithm>
     9 #include <set>
    10 #include <map>
    11 #include <list>
    12 #include <stack>
    13 #include <queue>
    14 #include <iterator>
    15 #include <vector>
    16 
    17 using namespace std;
    18 #define LL long long
    19 #define INF 0x3f3f3f3f
    20 #define MOD 1000000007
    21 #define MAXN 10000010
    22 #define MAXM 1000010
    23 
    24 int fun(LL x)
    25 {
    26     LL i;
    27     for(i = 2; i*i <= x; i++ )
    28         if(x%(i*i)==0)
    29             return 0;
    30     return 1;
    31 }
    32 
    33 
    34 int main()
    35 {
    36     int flag;
    37     LL n, m, i, j, ans;
    38     while(scanf("%lld", &n)==1)
    39     {
    40         flag = 0;
    41         m = sqrt(n+0.5)+1;
    42         for(i = 1; i <= m; i++ )
    43         {
    44             LL k = n/i;
    45             if(n%i==0&&fun(k))
    46             {
    47                 flag = 1;
    48                 ans = k;
    49                 break;
    50             }
    51         }
    52         if(!flag)
    53             for(i = m; i >= 1; i--)
    54             {
    55                 if(n%i==0&&fun(i))
    56                 {
    57                     ans = i;
    58                     break;
    59                 }
    60             }
    61         printf("%lld
    ", ans);
    62     }
    63 
    64     return 0;
    65 }
  • 相关阅读:
    网络杂项
    虚拟化
    虚拟化
    ssh
    开机启动命令/服务
    选择表达式
    查询一个表中的重复数据
    oracle逗号分隔函数
    只能为浮点数或整数的正则表达式
    后台模拟弹出上传匡
  • 原文地址:https://www.cnblogs.com/xl1164191281/p/5538334.html
Copyright © 2011-2022 走看看