Contest3115 - 2021级新生个人训练赛第23场_10247 Problem C 爱好数学的国王
//
爱好数学的国王题目描述Z 国的国王是一个非常爱好数学的国王。一天他对着他的那些大臣说:“素数真是一种神奇的正整数,除了1和它本身外,不能被其他任何正整数整除,2是最小的素数,有无穷多个啊……它还有一个美妙的名字:质数,……数学多么有趣啊……”。
Z 国今年风调雨顺,百姓丰衣足食。为了奖励他那帮管理有方的大臣,他决定把全部的 N 元奖金平均分配给其中的 K 位大臣,但酷爱数学的国王要求这 K 位大臣每人拿到的奖金必须是个素数。哪个大臣能够解决这个数学问题,国王就把奖金给这个大臣和另外的 K-1 人。 大臣们都想自己获得更多的奖金,所以希望分得奖金的大臣人数 K 越少越好。机智的大臣请来了“编程大侠”来帮忙解决这个问题。国王的间谍得知了这个情况后向国王汇报了大臣的行为。国王早就听说“编程大侠”的厉害,于是决定问 T 次这个问题,来试探一下
“编程大侠”的真正实力。输入输入共T+1行。
第1行一个整数T,表示国王问了T次。
接下来T行每行一个整数N,表示国王打算分配给大臣的总奖金。输出输出共T行。
第i行一个整数K,表示最少多少位大臣来平分输入中对应的全部奖金。如果找不到满足国王要求的分配办法,请输出“0”(输出时不包含双引号)。样例输入 Copy3
3
4
100
样例输出 Copy1
2
20
提示国王共问了 3 次。
第一次国王说:“我们总共有 3 元奖金”。“编程大侠”说:“最少分配给 1 位大臣,他可以获得所有奖金,即 3 元,因为 3 是一个素数”。
第二次国王说:“我们总共有 4 元奖金”。“编程大侠”说:“最少分配给 2 位大臣,他们每人可以获得 2 元奖金,因为 2 是一个素数”。
第三次国王说:“我们总共有 100 元奖金”。“编程大侠”说:“最少分配给 20 位大臣,他们每人可以获得 5 元奖金,因为 5 是一个素数”。 50%的测试点输入数据保证 1≤T≤5,1≤N≤10000
70%的测试点输入数据保证 1≤T≤10,1≤N≤1000000000
100%的测试点输入数据保证 1≤T≤10,1≤N≤2000000000 -
//
题意: 找 N 的最大质因子( 记作 factor ) 输出 N / factor 即可//
题解:01 由于测试数据过于大 所以采用 质因子唯一分解定理 优化算法02 ||--如果找不到满足国王要求的分配办法,请输出“0”(输出时不包含双引号)--|| 显然 对于 1 特殊数据 特殊处理03 由于 一个数的质因子分解是唯一的 所以我们采用:除掉所有小于 N 算术平方根的质因子,比较最后结果和所记录的最大质因子并返回
AC代码:
// 爱好数学的国王
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;ll max_prime_factor( ll n )
{ll i,maxf=0;// 除掉所有小于 N 算术平方根的质因子__极大减少循环次数for( i=2;i*i<=n;i++ ){if( n%i==0 ){if( maxf<i ) maxf=i;while( n%i==0 ) n/=i;}}return maxf>n?maxf:n;
}
// eg.
// 3*3*13
// 2 n(3*3*13) % i(2) != 0 continue
// 3 i*i(3*3) < n(3*3*13) maxf(0) < i(3) maxf=3
// 4 i*i(4*4) > n(13) break
// maxf=3 n=13 return n(13)int main()
{ll t,n;scanf("%lld",&t);while( t-- ){scanf("%lld",&n);if( n==1 ) printf("0\n");else printf("%lld\n",n/max_prime_factor(n));}return 0;
}
/**/
分解质因子代码:
// 分解质因子// 1
#include<bits/stdc++.h>
using namespace std;int main()
{int n,i;cout<<"请输入:";while( cin>>n ){cout<<n<<"=";if( n<2 ) cout<<n;else{for( i=2;i*i<=n;i++ ){while( n%i==0 ){n/=i;cout<<i;if( n!=1 ) cout<<"*";}}// 处理特殊数据if( n!=1 ) cout<<n;}cout<<endl<<"请输入:";}return 0;
}
/**/// 2
#include<bits/stdc++.h>
using namespace std;int main()
{int n,i,count,flag=0;cout<<"请输入:";cin>>n;cout<<n<<"=";if( n<2 ) { cout<<n; return 0; }for( i=2;i*i<=n;i++ ){if( n%i==0 ){count=0;while( n%i==0 ){n/=i;count++;}// 开头无 '*'if( flag ) cout<<"*";else flag=1;if( count==1 ) cout<<i;else cout<<i<<"^"<<count;}}if( n>1 ) { if( flag ) cout<<"*"; cout<<n; }return 0;
}
/**/
个人见解 酌情采纳.
Contest3115 - 2021级新生个人训练赛第23场_10247 Problem C 爱好数学的国王相关推荐
- Contest3121 - 2021级新生个人训练赛第26场_问题 F: 乐乐的数字
// 问题 F: 乐乐的数字 时间限制: 1.000 Sec 内存限制: 128 MB题目描述 乐乐做完数学作业,突发奇想定义了一种新的数:乐乐数.乐乐把n个数排成一行,一个数的"乐乐数&q ...
- [2021.11.19]UPC-2021级新生个人训练赛第4场-19278 Problem D 关门
题目描述 为了将这些生产的玩具销往海外,晚上江北的玩具公司灯火通明.安安是公司的保安,当所有工作人员离开公司后,他要把公司里所有的门都关闭.房间的门有些是关闭的,有些是打开的.为了察看该公司里所有房间 ...
- Contest3145 - 2021级新生个人训练赛第37场_A: 奖品
// 问题 A: 奖品 时间限制: 1.000 Sec 内存限制: 128 MB题目描述 托塔李天王的三太子那吒,本领高强,他要赶在奥林匹克运动会之际,开一个头脑 奥林匹克比赛,获胜者的奖品就是经过提 ...
- 2021级新生个人训练赛第38场
问题 A: chicken 题目描述 小 x 非常喜欢小鸡翅.他得知 NSC 超市为了吸引顾客,举行了如下的活动: 一旦有顾客在其他超市找到更便宜的小鸡翅,NSC 超市将免费送给顾客 1000g 小鸡 ...
- 2021级新生个人训练赛第40场
问题 A: 多项式输出 题目描述 一元 n 次多项式可用如下的表达式表示: 其中,aixi称为 i 次项,ai 称为 i 次项的系数.给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该 ...
- Contest3117 - 2021级新生个人训练赛第24场_问题 E: 打印方阵
问题 E: 打印方阵 时间限制: 1.000 Sec 内存限制: 128 MB题目描述 下面这样的方阵很有规律,称为蛇形方阵.例如3*3的: 1 2 3 6 5 4 7 8 9 现在给定边长,输出相应 ...
- Contest3143 - 2021级新生个人训练赛第36场_B: 数字游戏
// 问题 B: 数字游戏 时间限制: 1.000 Sec 内存限制: 512 MB题目描述 有一天,小明给佳佳出了一道题, 给出一个正整数n,佳佳可以进行如下三种操作: 1.使n减去1 2.如果n是 ...
- Contest3125 - 2021级新生个人训练赛第27场_问题 F: 兔子
//问题 F: 兔子 时间限制: 1.000 Sec 内存限制: 128 MB题目描述 从左往右有100000001个整数点,分别是整数点0至整数点100000000.有n只兔子,第i只兔子在整数点d ...
- 2021级新生个人训练赛第36场
问题 A: 礼物 题目描述 在一个n×n的网格图上,放置着m个礼物,每个礼物有一个价值vi(1≤i≤m),你可以选择一个礼物,然后选择: (1)取走与它同列的所有礼物,或者(2)取走与它同行的所有礼物 ...
- [2022.1.13]UPC-2021级新生个人训练赛第22场-9783 Problem H 铺地砖
问题 H: 铺地砖 时间限制: 1.000 Sec 内存限制: 128 M 题目描述 一天,晨晨的数学老师布置了一道题目,大意如下:用1×1和2×2的磁砖不重叠地铺满n×3的地板,共有多少种方案? 例 ...
最新文章
- python中nlp的库_单词袋简介以及如何在Python for NLP中对其进行编码
- matlab小波三维图,matlab小波包变换估计时变功率谱三维图出图和理想不一样
- 字符串hash(一)
- Easyui 页面访问慢解决方案,GZIP网站压缩加速优化
- CSS Lint-线上CSS检测工具 让你的样式表更正确精简
- cruzer php sandisk 闪迪u盘量产工具_闪迪u3量产工具下载|
- 服务器注册表修复,修复注册表,重连服务器
- 5G消息标准版——富媒体消息,打造场景信息沉浸式体验
- C语言量化管理系统,任务量化管理系统
- 问题 1125: 【C语言训练】委派任务*【最优解】
- 如何取消您的Nintendo Switch在线订阅
- python建立窗口并美化_Python GUI教程(十六):在PyQt5中美化和装扮图形界面
- NBA球员 ESPN前20排名:詹姆斯再居榜首
- 计算机网络三网,七律四首(手机、电视、计算机网络、三网融合)
- 将bbox注释信息绘制到图片上
- 银行外汇资金业务学习笔记(2)当我们在说头寸(position)的时候
- maven项目中报错 could not find class that it depends on找不到依赖的问题
- GFM(GitHub Flavored Markdown)与标准Markdown的语法区别
- C语言题目奶牛牧场,C语言算法训练:安慰奶牛
- python主要讲什么意思_python:苗先生从影评上说了什么?,中,看妙,讲,啥