bzoj1053 [HAOI2007] 反素数ant

2024-01-10 02:49
文章标签 ant 素数 bzoj1053 haoi2007

本文主要是介绍bzoj1053 [HAOI2007] 反素数ant,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

传送门
Description

  对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。如果某个正整数x满足:g(x)>g(i)0 < i < x,则称x为反质数。例如,整数1,2,4,6等都是反质数。现在给定一个数N,你能求出不超过N的最大的反质数么?
Input
  一个数N(1<=N<=2,000,000,000)。
Output
  不超过N的最大的反质数。
Sample Input
1000
Sample Output
840

题解

乍一看这道题很像一道数轮题,于是苦心钻研欧拉函数无果= =
然而这道题跟欧拉函数半毛钱关系都没有,事实上是一道搜索
可以枚举所有的小质数,由于唯一分解定理,若一个数x可以被分解成
               这里写图片描述

这里写图片描述
所以枚举完所有小质数的直属以后就可以直接求其因子数量了
又由于题目要求的是g(x)>g(i) 0 < i < x,所以当因子数量相同时,更小的数才是答案
所以枚举指数的时候较大的质数的指数一定小于等于之前的质数的指数。
搜索即可

#include<cstdio>
int P[13]={0,2,3,5,7,11,13,17,19,23,29,31,37};
int n,maxn;
long long ans;
void dfs(long long num,int tot,int d,int last)
{if(tot>maxn||tot==maxn&&num<ans) maxn=tot,ans=num;if(d==13) return;long long tmp=1;for(int i=1;i<=last;i++){tmp*=P[d];if(tmp*num>n) break;dfs(num*tmp,tot*(i+1),d+1,i);}
}
int main()
{scanf("%d",&n);dfs(1,1,1,27);printf("%lld",ans);return 0;
}

这篇关于bzoj1053 [HAOI2007] 反素数ant的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/589313

相关文章

Axure元件库Ant Design中后台原型模板:提升设计与开发效率的利器

企业对于中后台产品的设计与开发需求日益增长。为了提升用户体验和开发效率,设计者和开发者们不断寻求更加高效、统一的解决方案。Ant Design,作为阿里巴巴开源的一套企业级UI设计语言和React组件库,凭借其丰富的组件和统一的设计风格,已成为众多项目的首选。而在Axure中使用Ant Design元件库,更是为中后台产品的原型设计带来了极大的便利。 Ant Design简介 Ant D

ant-design-pro 学习01

1、开始学习ant-design-pro,安装啥的自动忽略,参考文档:https://pro.ant.design/docs/getting-started-cn 根据文档学习,添加页面,新增组件都没问题,可以跟着做,但是到了和服务器交互时就有点蒙了,因为ant-design-pro采用了dva框架实现,前段使用react技术,对于只有后台开发经验的我还停留在springmvc 的工作模式上,对

ant design pro 新增页面

1.在 src/routes/ 下面创建一个页面 // 填写如下内容/** NewPage.js内容 */import React, { Component } from 'react';export default class NewPage extends Component {render() {return (<div>这是新页面</div>)}}/** NewPage.le

js算法判断是否为素数

/*判断一个数字是否是质数: 质数(prime number)又称素数,有无限个。除了1和它本身以外不再被其他的除数整除。*/ function isPrime(number){ //判断输入是否为number类型,是否为整数       if (typeof number!=='number'||!Number.isInteger(number))      {

ant mobile design组件库的PickerView组件不能滑动

问题 PickerView组件在开发环境可滑动,在测试环境不可滑动 正常开发环境是这样正常显示,并且可滑动的 发到测试环境后,变成了这样,并且只有中间那列可滑动,两边的都不能滑动,而且还会报警告 封装的组件代码如下 // 日期选择组件const CustomDatePickerView: FC<any> = ({customizeTab,setCustomizeTime,cus

vue3+ant design vue实现表格导出(后端返回文件流类型导出)

1、之前的博客介绍了,依据页面展示的table表格数据为基础展示表格导出,今天介绍下后端返回文件流来实现表格导出。 <a-button class="btn" type="primary" @click="exportData1">导出</a-button>import {ExportTheEmployeesTab } from '@/api/import';// 导出import { dow

【时时三省】c语言例题----华为机试题< 查找组成一个偶数最接近的两个素数>

山不在高,有仙则名。水不在深,有龙则灵。                                                                         ----CSDN 时时三省 1,题目 HJ60 查找组成一个偶数最接近的两个素数 描述 任意一个偶数(大于2)都可以由2个素数组成,组成偶数的2个素数有很多种情况,本题目要求输出组成指定偶数的两个

题目:求100以内的素数,全部打印出来。

题目:求100以内的素数,全部打印出来。 public class ZhaoSuShu {public static void isPrime1(){int i,j,count = 0;//System.out.println("2");for(i = 1; i <= 100; i++){for(j = 2; j <= i; j++){if(i % j == 0){break;}}if(j ==

素数判定和分解质素数

1.素数判定   public static boolean isPrime(int n) {if (n <= 1) return false;if (n == 2) return true;if (n % 2 == 0) return false;int limit = (int)Math.sqrt(n) + 1;for (int i = 3; i <= limit; i += 2) {i

Java-计算素数

判断输入的数字是不是素数: public class SuShu{public static void main(String[] args){java.util.Scanner s=new java.util.Scanner(System.in);int i=s.nextInt();boolean isSuShu=true; //标记;for(int j=2;j<i;j++){if(i%j=