(博弈)(思维)(试除法判断质数)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;
}
目录
相关文章
|
应用服务中间件 网络安全 nginx
快速上手!使用Docker和Nginx部署Web服务的完美指南
快速上手!使用Docker和Nginx部署Web服务的完美指南
|
存储 JavaScript 前端开发
细读 Git | 让你弄懂 origin、HEAD、FETCH_HEAD 相关内容
细读 Git | 让你弄懂 origin、HEAD、FETCH_HEAD 相关内容
5254 2
细读 Git | 让你弄懂 origin、HEAD、FETCH_HEAD 相关内容
|
10月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
159 0
|
6月前
|
JSON 前端开发 应用服务中间件
跨域请求(CORS)如何解决?
CORS 全称为(Cross-Origin Resource Sharing:跨站资源共享),跨域请求是由于浏览器的同源策略(Same-Origin Policy)引起的,那么 CORS 的产生和浏览器的同源策略有关系,我们先了解什么是同源策略。
|
Python
用python进行视频剪辑源码
这篇文章提供了一个使用Python进行视频剪辑的源码示例,通过结合moviepy和pydub库来实现视频的区间切割和音频合并。
291 2
|
11月前
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
159 3
|
JavaScript 前端开发 UED
Vue.js动画魔法:解锁流畅过渡,让每一次交互都成为用户心中的小确幸!
【8月更文挑战第30天】在Vue.js中,动画与过渡效果不仅是视觉点缀,更是提升用户体验的关键。通过流畅的动态效果,应用的互动性和吸引力得以增强,从而提高用户满意度和参与度。`&lt;transition&gt;`和`&lt;transition-group&gt;`组件结合CSS过渡,可轻松实现元素的进入、离开及列表变化动画。合理的性能优化,如使用硬件加速,能避免页面卡顿,确保动画既美观又高效。下面是一个简单的淡入淡出效果示例,展示了如何利用Vue.js实现平滑的动画过渡。总之,恰当的动画设计能显著提升应用的用户体验。
237 0
Vue.js动画魔法:解锁流畅过渡,让每一次交互都成为用户心中的小确幸!
|
JavaScript
如何创建一个Vue项目(手把手教你)
这篇文章是一篇手把手教读者如何创建Vue项目的教程,包括使用管理员身份打开命令行窗口、找到存放项目的位置、通过vue-cli初始化项目、填写项目信息、进入项目目录、启动项目等步骤,并提供了一些常见第三方库的引入方法。
如何创建一个Vue项目(手把手教你)
|
11月前
|
监控 测试技术 持续交付
深入理解微服务架构及其在现代软件开发中的应用
【10月更文挑战第10天】深入理解微服务架构及其在现代软件开发中的应用
113 0
|
开发工具 git
git报错:fatal: remote origin already exists.
git报错:fatal: remote origin already exists.
412 0
git报错:fatal: remote origin already exists.

热门文章

最新文章