(博弈)(思维)(试除法判断质数)B - 是我仅会的GCD还是素数筛呢? G. Goodbye

简介: (博弈)(思维)(试除法判断质数)B - 是我仅会的GCD还是素数筛呢? G. Goodbye

题目链接

B - 是我仅会的GCD还是素数筛呢?

Problem - G - Codeforces


一些话

cf上一直报ce和re,原因是cf上的clang++有问题,以后都用g++来交

流程

博弈题,通过列举样例来寻找规律


通过列举样例可知有三种情况


1.由两个质数相乘得到的数的结果是-1,


2.质数结果为0


3.其他情况结果是最大的两个质因数乘积


最大质因数和质数的获取比较简单,所以只要用一个数组储存数字对应的结果,初始化为-1,然后判断是否符合2和3的情况,符合的话就做处理


通过试除法来实现上面的流程


枚举可能的因数,判断是否能整除,不能整除的话结果就是0,能整除的话再判断因子对应结果是否是-1(即两个质数的乘积)如果是的话就取自身结果和这个因子的最大值作为最大的质因数乘积


套路

试除法,用于判断质数

 bool flag = false;
         for(int j = 2;j <= i/j;j++){
                if(i % j == 0) {
                        flag = false;
                }
        flag = true;
        }
}

ac代码

#include <iostream>
using namespace std;
const int N = 1e5 + 10;
int f[N];
void init(){
  f[1] = 0;
  for(int i = 2;i <= N;i++){
    f[i] = -1;
    bool flag = false;
    for(int j = 2;j <= i / j;j++){
      if(i % j == 0){
        flag = true;
        if(f[j] == -1) f[i] = max(f[i],j);
        if(f[i/j] == -1) f[i] = max(f[i],i/j);
      }
    }
    if(!flag) f[i] = 0;
  }
}
int main(){
  init();
  int t;    int x;
  cin >> t;
  while(t--){
    scanf("%d",&x);
    cout << f[x] << endl;
  }
  return 0;
}
目录
相关文章
|
4月前
|
SQL 人工智能 分布式计算
活动速递|VeloxCon China 将于12月13日在北京举办,议题征集已开放!
Velox 首届中国大会(VeloxCon China 2025)将于 2025 年 12 月 13 日在北京举办!
|
9月前
|
存储 弹性计算 缓存
阿里云服务器ECS实例选型与性能监控指南:从场景匹配到优化参考
随着云服务器的普及应用,越来越多的企业和个人用户选择将业务迁移到云端,以享受其带来的灵活性、可扩展性和成本效益。阿里云服务器(Elastic Compute Service,简称ECS)以其丰富的实例规格、卓越的性能和稳定的运行环境,赢得了广大用户的信赖。然而,对于很多初次接触云服务器产品的新手用户来说,面对阿里云多达几十种的云服务器实例规格,往往感到无从下手,不知道如何选择最适合自己业务需求的实例规格。本文旨在通过详细解析阿里云ECS实例规格的选择策略,并介绍如何有效监控云服务器性能,确保业务的高效运行。
517 63
|
7月前
|
存储 JavaScript 前端开发
JavaScript编程:生成随机数的方法
在JavaScript中生成随机数的方法因应用场景而异。简单情形下可以使用 `Math.random()` 来得到基本的随机数,而对于需要整数范围的随机值则可以通过结合 `Math.floor()` 和 `Math.random()` 进行计算。而UUID的生成虽不要求使用加密安全的随机数,但可以通过特定的字符串模式生成满足格式的随机值。最后,需要密码学安全级别的随机数时,应使用 `crypto` 对象的 `getRandomValues()` 方法。选择合适的方法将确保您的应用生成的随机数既符合需求又足够安全。
541 13
|
Python
用python进行视频剪辑源码
这篇文章提供了一个使用Python进行视频剪辑的源码示例,通过结合moviepy和pydub库来实现视频的区间切割和音频合并。
431 2
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
238 0
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
272 3
|
11月前
|
JSON 前端开发 应用服务中间件
跨域请求(CORS)如何解决?
CORS 全称为(Cross-Origin Resource Sharing:跨站资源共享),跨域请求是由于浏览器的同源策略(Same-Origin Policy)引起的,那么 CORS 的产生和浏览器的同源策略有关系,我们先了解什么是同源策略。
|
JavaScript
如何创建一个Vue项目(手把手教你)
这篇文章是一篇手把手教读者如何创建Vue项目的教程,包括使用管理员身份打开命令行窗口、找到存放项目的位置、通过vue-cli初始化项目、填写项目信息、进入项目目录、启动项目等步骤,并提供了一些常见第三方库的引入方法。
如何创建一个Vue项目(手把手教你)
|
Web App开发 缓存 网络协议
不为人知的网络编程(十八):UDP比TCP高效?还真不一定!
熟悉网络编程的(尤其搞实时音视频聊天技术的)同学们都有个约定俗成的主观论调,一提起UDP和TCP,马上想到的是UDP没有TCP可靠,但UDP肯定比TCP高效。说到UDP比TCP高效,理由是什么呢?事实真是这样吗?跟着本文咱们一探究竟!
642 10
|
前端开发 JavaScript 关系型数据库
微搭低代码从入门到精通02数据源的介绍
微搭低代码从入门到精通02数据源的介绍

热门文章

最新文章