zoukankan      html  css  js  c++  java
  • cf 151 C. Win or Freeze (博弈 求大数质因子)

    题目

    题意:

    给一个数N,两人轮流操作
    每次将N变为一个N的非1非自身的因数,第一个无法进行操作的人获胜
    问先手是否有必胜策略,如果有的话在第二行输出第一步换成哪个数,如果第一步就不能操作则输出0
    数据规模:N≤10^13。

    思路:

    当N为1或者质数时,先手胜且输出0
    当N恰为两个质数的乘积时,先手负,因为他必须写下一个质数,使后手获胜
    其他情况下,他只要写下N的任意两个质因数的乘积就能获胜。

     1 #include <iostream>
     2 #include <cstring>
     3 #include <vector>
     4 #include <cstdio>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     long long i;
    10     long long q;
    11     vector<long long>v;
    12     while(cin>>q)
    13     {
    14        v.clear();
    15        for(i = 2; i*i <= q; i++)
    16           while(q%i==0)
    17             {
    18                 v.push_back(i);
    19                 q /= i;
    20             }
    21         if(q>1)
    22             v.push_back(q);
    23 
    24         if(v.size()<2)
    25         printf("1
    0
    ");
    26         else if(v.size()==2)
    27             printf("2
    ");
    28         else
    29             printf("1
    %d
    ", v[0]*v[1]);
    30     }
    31     return 0;
    32 }

    求一个数的质因数的模板:

    可能有重复的, 如输入8  会输出:2 2 2;

    也有可能只有自身,如输入11 输出11

    但是v数组里的数的乘积就等于 输入的数字。

     1 #include <iostream>
     2 #include <cstring>
     3 #include <vector>
     4 #include <cstdio>
     5 using namespace std;
     6 
     7 int main()
     8 {
     9     long long i;
    10     long long q;
    11     vector<long long>v;
    12     while(cin>>q)
    13     {
    14        v.clear();
    15        for(i = 2; i*i <= q; i++)
    16           while(q%i==0)
    17             {
    18                 v.push_back(i);
    19                 q /= i;
    20             }
    21         if(q>1)
    22             v.push_back(q);
    23 
    24         for(i = 0; i < v.size(); i++)
    25         {
    26            cout<<v[i]<<" ";
    27         }
    28         cout<<endl;
    29     }
    30     return 0;
    31 }
  • 相关阅读:
    Django DRF 分页
    django DRF理解
    Docker使用
    基于Django+FastDFS文件管理系统搭建
    django+centos+mariadb读写分离完美实现(上)-mysql主从备份实现
    Python协程理解——基于爬虫举例
    基于Python的大数据的分页模型代码
    NOIP模拟——矩阵分组
    NOIP模拟——聚会
    NOIP模拟——卡牌游戏
  • 原文地址:https://www.cnblogs.com/bfshm/p/3685177.html
Copyright © 2011-2022 走看看