计算机软件能力认证考试系统
3 2155895064 3 2 2 10000000000 10
2238728 1 10000000000
这个题主要麻烦的地方应该在于分解成素数n次方相乘的数学思想和大整数的处理。
关于素数分解,一个思路是简单粗暴地把小于n的所有素数都给尝试一遍(也只会暴力了😭)
比如说有这么一个数n,首先用2的1次方去除,能不能除尽?能的话用2的2次方去除,能不能除尽?然后继续......能不能用2的14次方去除?发现不能除尽!所以这个n至少可以被分解为
n=(2^13)*......(省略号是因为后边的还不知道)
然后n=n/(2^13)
接下来用下一个素数3,首先用3的1次方去除,能不能除尽?能的话用3的2次方去除,能不能除尽?然后继续......能不能用3的8次方去除?不能除尽!所以原来的那个n至少可以被分解为
n=(2^13)*(3^7)......
然后n=n/(2^13*3^7)
以此类推
这样的话n的分解倒是不难了,在运算中加入判定,比k小的变量不去管它,比k大或相等的变量乘进去就行了。
#include<iostream> using namespace std; //********判断一个数是否是素数******** bool is_prime(int a){ if(a==2){ return true;//a是素数 } for(int i=2;i<=a/2;i++){ if(a%i==0){ return false;//存在不是1和它自身的因数,故不是素数 } } return true; } //对一个数x开n次方 int nth_power(int x,int n){ int r=1; for(int i=0;i<n;i++){ r=r*x; } return r; } //********这个才是重点,已知n,k,返回n简化后的值 int Query_Results(long int n,int k){ int Result=1; int j; for(int i=2;i<=n/2;i++){ if(is_prime(i)==true){//如果i是素数 j=1; while(nth_power(i,j)<=n){ if(n%nth_power(i,j)!=0){ break; } j++; } if(j-1>=k){ Result=Result*nth_power(i,j-1); n=n/nth_power(i,j-1); }//筛选出大于k的因子 } } return Result; } int main(){ int q; long int **a; cin>>q;//第一行,输入q a=(long int**)malloc(sizeof(long int*)*q);//开辟q行空间 for(int i=0;i<q;i++){ a[i]=(long int*)malloc(sizeof(long int)*2); }//开辟空间存放接下来输入的数据 for(int i=0;i<q;i++){ cin>>a[i][0]>>a[i][1]; }//输入接下来的数据,a[i][0]为n,a[i][1]为k //逐行输出 for(int i=0;i<q;i++){ cout<<Query_Results(a[i][0],a[i][1])<<"\n"; } return 0; }
n可能比较大,用传统的int或者long int啥的似乎存不下,这一部分测试样例满足不了(包括题中所给的那个样例输入就搞定不了),所以这个代码大概只能拿80分。
因此还得解决一下存放大整数的问题😭
今日报告-66
设置Windows10暂停更新3000天
AQS公平锁的流程
AMD锐龙7 7800X3D网游专项测试:竟比i9-13900KS强了15%
常用总线技术基本参数对比
探索图像数据中的隐藏信息:语义实体识别和关系抽取的奇妙之旅
设置Chrome浏览器自动升级
JavaScript – 小技巧 Tips
Winform无边框窗体实现拖动
STM32基础(一)
技术人的修炼---九五小庞
vue自定义事件用法及$emit
ODOO 科目配置4
sqlite 触发器 c#
postgresql在插入数据后怎么获取自增id
EF Core 的基本使用
error: failed to push some refs to 'https://github.com/*******/********.github.io.git'
欧拉降幂
编程语言能力对比
基于机器视觉的小车轨迹控制软件界面展示
step7 V5.x上的SCL
yolo --- 核心思想
【游记】CCPC 济南 2024 游记
AJAX & AXIOS-2024/11/1
验证码处理在自动化测试中的应用
一些学科笑话
NOIP2024模拟赛20 & 11.1 小记
20241101 数据结构与算法期中机试收获
Java,启动!
什么是IT技术
即将到来!
2024/11/1日 日志 关于JavaScript简介&引入方式 以及基础语法的学习
舍得-时间-工作是人的一生最重要的事情-自己要有私房钱-人的一生最重要的事情是书写自己的人生
2.TiUP 部署 DM 集群
原型模式的C++实现
python bytecode解析
09-XSS键盘监听、cookie窃取&文件上传绕过
ubuntu 24.04 部署 mysql 8.4.3 LTS
国标GB28181公网平台LiteGBS国标GB28181视频平台建筑工地无线视频联网监控系统方案
imes完工下线
Ethernaut Level 11: Elevator Attack and Blockchain Interaction
快速部署开源spug运维平台的Docker安装指南
驱动调试之printk的原理与使用
计算机思维模型及其应用
华为云发布代码大模型PanGu-Coder2,实现高效代码生成
Linux多硬盘数据存储和分区操作
构建高可用架构: 分层冗余与自动故障转移
LoRA:高效调参的大语言模型适应方法
《分布式系统的基本原理及互联网分层架构的本质》
Hadoop写流程解析
Java架构师的系统架构设计方法论中的规范要点
使用observeDOM解决BetterScroll插件在移动端无法滑动的问题
互联网一致性架构设计实践
高并发系统架构与水平扩展
混合应用的崛起:跨平台开发取代原生应用