首页 > 其他分享 >TJ-CF1423K

TJ-CF1423K

时间:2024-01-24 18:34:04浏览次数:36  
标签:le int 质数 times CF1423K TJ 最大值

CF1423K

首先,我们假设 \(a>b\) ,设 \(\gcd(a,b)=c,a=k_1\times c,b=k_2\times c\)
则 \(c\le b<a\)

则是 \(c,k_1,k_2\) 构成一个三角形,且 \(k_1>k_2(k_1>1)\)

分类讨论:

  1. \(c\) 为最大值

    \(c<k_1+k_2,c>k_1>k_2\)

    由于 \(c,k_1,k_2\) 都为正整数,也就是说只要 \(c>2\) 就有可能的一组 \(k_1,k_2\)

  2. \(k_1\) 为最大值

    \(k_1>c,k_1<c+k_2\)

    若 \(k_2=k_1-1\) ,则只要 \(c>1\) 即可,也就是说要 \(a,b\) 不互质。

  3. \(c=k_1(k_1>1)\)

    \(k_1+k_2>c\) ,则 \(k_2>0\) ,只要 \(a,b\) 不互质即可。

那么,当 \(a\) 取什么值的时候,对于任意一个 \(1\le b<a\) , \(\gcd(a,b)\) 都为1呢?

显然是质数时,也就是说,合数一定不会是孤独数字

接下来单独考虑质数的情况,设 \(a\) 为质数, \(b=k\times a\)

则 \(\gcd(a,b)=a\) ,三角形三边为 \(a,k,1(a\ge 2)\)

  1. \(a\) 为最大值

    则 \(a<k+1\) , \(a>k\) ,矛盾。

  2. \(k\) 为最大值

    则 \(k<a+1\) , \(k>a\) ,矛盾。

  3. \(a=k\)

    显然满足 \(k<a+1~(k=a)\) 。此时 \(b=a^2=k^2\) ,只有在 \(a\le \sqrt{n}\) 时成立。

设 \(f[i]\) 表示 \([1,i]\) 中的质数的数量,则最后答案为 \(f[n]-f[\sqrt{n}]\)

代码:

#include<bits/stdc++.h> 
#define ll long long 
using namespace std;
const int N=1e6+6;
bool vis[N];
int prime[N],cnt;
int sum[N];
inline void work(){
	for(int i=2;i<N;i++){
		if(!vis[i]){
			prime[++cnt]=i;
			sum[i]=1;
		}
		for(int j=1;j<=cnt&&prime[j]*i<N;j++){
			vis[i*prime[j]]=1;
			if(i%prime[j]==0) break;
		}
	}
	for(int i=1;i<N;i++) sum[i]+=sum[i-1];
}

int main(){	
	work();
	int T,n;
	scanf("%d",&T);
	while(T--){
		scanf("%d",&n);
		printf("%d\n",sum[n]-sum[(int)sqrt(n)]+1);
	}
	return 0;
} 

标签:le,int,质数,times,CF1423K,TJ,最大值
From: https://www.cnblogs.com/123456xwd/p/17985489

相关文章

  • P3879 [TJOI2010] 阅读理解(水题)
    [TJOI2010]阅读理解题目描述英语老师留了N篇阅读理解作业,但是每篇英文短文都有很多生词需要查字典,为了节约时间,现在要做个统计,算一算某些生词都在哪几篇短文中出现过。输入格式第一行为整数N,表示短文篇数,其中每篇短文只含空格和小写字母。按下来的N行,每行描述一篇短文......
  • 二、nextjs API路由如何做好JWT登录鉴权、身份鉴权,joi字段校验,全局处理异常等(c-shoppi
    介绍在这篇文章中,我们将学习如何在C-Shopping电商开源项目中,基于Next.js14,处理所有API路由中添加身份验证和错误处理中间件的思路与实现。这篇文章中的代码片段取自我最近开源项目C-Shopping,完整的项目和文档可在https://github.com/huanghanzhilian/c-shopping地址查看。Next......
  • 二、nextjs API路由如何做好JWT登录鉴权、身份鉴权,joi字段校验,全局处理异常等(c-shoppi
    介绍在这篇文章中,我们将学习如何在C-Shopping电商开源项目中,基于Next.js14,处理所有API路由中添加身份验证和错误处理中间件的思路与实现。这篇文章中的代码片段取自我最近开源项目C-Shopping,完整的项目和文档可在https://github.com/huanghanzhilian/c-shopping地址查看。Next.js......
  • P4588 [TJOI2018] 数学计算
    题目描述小豆现在有一个数x,初始值为1。小豆有Q次操作,操作有两种类型:1m:将x变为×*m,并输出xmodM。2pos:将x变为x除以第pos次操作所乘的数(保证第pos次操作一定为类型1,对于每一个类型1的操作至多会被除一次),并输出xmodM。输入格式一共有t组输入。对于每一......
  • Json转换工具类(基于google的Gson和阿里的fastjson)
    在项目之中我们经常会涉及到字符串和各种对象的转换,为此特地整理了一下常用的转换方法一、基于com.google.code.gson封装的json转换工具类 1.在pom.xml文件里面引入gson的依赖<dependency><groupId>com.google.code.gson</groupId><arti......
  • 一、nextjs如何使项目工程化(c-shopping电商开源)
    欢迎来到本系列文章,这些内容都是从我的开源项目C-Shopping衍生而来的。在这个系列中,我们将深入探讨Next.js和其他技术的各个方面,分享我在开发C-Shopping时积累的见解和最佳实践。如果你发现这些文章有帮助,请考虑在GitHub上为项目点亮一颗星星。你的支持对我来说意义重大,也......
  • copilotjava
    使用Copilot生成Java代码介绍Copilot是一款由GitHub开发的人工智能代码生成工具,可以帮助开发者更高效地编写代码。在本文中,我将向你介绍如何使用Copilot生成Java代码。无论你是一名经验丰富的开发者还是刚入行的小白,都可以从本文中学习到如何使用Copilot提升你的开......
  • nextjs使用prisma连接MySQL
      第一步npminstall@prisma/client 第二步npxprismainit 生成了文件 第三步,修改文件内容 第四步 第五步测试一下,执行npxprismadbpull我里面有一个user表的,拉下来这样显示了 ......
  • 【nestjs】main.ts
    1.main.ts文件做了什么?核心文件,通过NestFactory.create创建应用程序实例,完成中间件、守卫、管道、异常过滤器、拦截器的注册。2.NestFactory.create(appModele,options?)做了什么?创建应用程序实例,该方法接受两个参数,第一个参数是一个根模块,第二个参数是一个可选的配置对象,......
  • nextjs14连接MySQL
     第一步npminstallmysql2第二步新建一个db.js db.jsimportmysqlfrom"mysql2/promise";exportasyncfunctionquery({query,values=[]}){constdbconnection=awaitmysql.createPool({host:process.env.MYSQL_HOST,post:process.env.MY......