当前位置:网站首页>E. Singhal and numbers (prime factor decomposition)
E. Singhal and numbers (prime factor decomposition)
2022-07-05 20:23:00 【Dimple】
https://codeforces.com/gym/102767/problem/E
The question
Give a number n, You can choose less than n As a factor of N.
- If N Prime number , So the answer is A + X N A + \frac{X}{N} A+NX;
- If N Is the sum , So the answer is B + X N B + \frac{X}{N} B+NX;
- If N by 1, So the answer is C + X N C + \frac{X}{N} C+NX.
ask , What is the minimum answer ?
Ideas
To minimize the answer , Be sure to find the largest prime factor , The largest combining factor .
Prime factor decomposition finds the maximum prime factor ,O( n \sqrt{n} n).
In order to find the maximum composite number , Sure First find the maximum factor :n / Minimum prime factor .
- If the maximum factor is prime , It means that there is no maximum combining factor .
- Otherwise, the maximum factor is the maximum resultant factor .
Note that the factor in this question should be less than n, So we can make a special judgment first n In the case of prime numbers .
Code
#include<bits/stdc++.h>
using namespace std;
#define Ios ios::sync_with_stdio(false),cin.tie(0)
const int N = 200010, mod = 1e9+7;
int T, n, m;
int a, b, c;
bool isPrim(int x){
if(x == 0 || x == 1) return 0;
for(int i=2;i<=x/i;i++)
{
if(x % i == 0) return 0;
}
return 1;
}
signed main(){
Ios;
cin >> T;
while(T--)
{
cin >> n;
cin >> a >> b >> c;
if(isPrim(n)){
cout << c + n << endl;
continue;
}
int mprim = -1, mcom = -1;
int minprim = -1;
int t = n;
for(int i=2;i<=t/i;i++)
{
if(t % i == 0)
{
while(t % i == 0) t/=i, mprim = i;
if(minprim == -1) minprim = i;
}
}
if(t != 1) mprim = t;
int min1 = 1e18, min2 = 1e18, min3 = 1e18;
min1 = a+n/mprim;
mcom = n/minprim;
if(!isPrim(mcom)) min2 = b+n/mcom;
min3 = c+n;
int ans = min(min(min1, min2), min3);
cout << ans << endl;
}
return 0;
}
边栏推荐
猜你喜欢
Leetcode skimming: binary tree 10 (number of nodes of a complete binary tree)
Scala basics [HelloWorld code parsing, variables and identifiers]
. Net distributed transaction and landing solution
【刷题记录】1. 两数之和
欢迎来战,赢取丰厚奖金:Code Golf 代码高尔夫挑战赛正式启动
全国爱眼教育大会,2022第四届北京国际青少年眼健康产业展会
Enter the parallel world
小程序事件绑定
Leetcode brush question: binary tree 13 (the same tree)
PyTorch 1.12发布,正式支持苹果M1芯片GPU加速,修复众多Bug
随机推荐
Guidelines for application of Shenzhen green and low carbon industry support plan in 2023
强化学习-学习笔记4 | Actor-Critic
Leetcode skimming: binary tree 10 (number of nodes of a complete binary tree)
信息学奥赛一本通 1337:【例3-2】单词查找树 | 洛谷 P5755 [NOI2000] 单词查找树
怎么挑选好的外盘平台,安全正规的?
Informatics Orsay all in one 1339: [example 3-4] find the post order traversal | Valley p1827 [usaco3.4] American Heritage
[quick start of Digital IC Verification] 9. Finite state machine (FSM) necessary for Verilog RTL design
关于BRAM IP复位的优先级
Leetcode (695) - the largest area of an island
计算lnx的一种方式
【愚公系列】2022年7月 Go教学课程 004-Go代码注释
[Yugong series] go teaching course in July 2022 004 go code Notes
Relationship between mongodb documents
【数字IC验证快速入门】9、Verilog RTL设计必会的有限状态机(FSM)
Rainbond 5.7.1 支持对接多家公有云和集群异常报警
sort和投影
sun.misc.BASE64Encoder报错解决方法[通俗易懂]
[quick start to digital IC Verification] 8. Typical circuits in digital ICs and their corresponding Verilog description methods
Y57. Chapter III kubernetes from entry to proficiency -- business image version upgrade and rollback (30)
Zero cloud new UI design