题目链接:https://vjudge.net/problem/CodeForces-1076B

题意:

题目要求给定一个数,要求每次减去其最小素因数(既是素数又是其因数),问直到n=0需要做几次运算。

分析:

首先如果n为素数,则其最小素因数就是它本身,故第一次运算n:=n-n即得0,只需要一次运算。当n为偶数时,素因子恒为2,故每次减2直到0,所以运算次数为n/2次,当n为奇数是,首先减一次最小素因子,因为最小素因子一定是奇数,故奇-奇=偶,变为偶数后就按上述做法求得运算次数即可。

总结如下:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <queue>
typedef long long ll;
using namespace std;
ll n; bool prime(ll x) {
for(ll i = ; i <= sqrt(x); i++) {
if(x % i == )
return false;
}
return true;
} ll min_div(ll x) {
for(ll i = ; i < n; i++) {
if(x % i == )
return i;
}
} int main(void) {
while(scanf("%lld", &n) == ) {
if(prime(n)) {
printf("1\n");
continue;
}
else if(n % == ) {
printf("%lld\n", n/);
continue;
}
else {
n -= min_div(n);
printf("%lld\n", n/+);
}
}
}

最新文章

  1. Oracle安装部署,版本升级,应用补丁快速参考
  2. Python数据分析笔记目录
  3. Oracle启动报错ORA-27102解决
  4. 网页设计之jQuery
  5. Xcode 提高效率的几个快捷键
  6. 【转载-pdcxs007】 Windows7配置CTex+Texmaker
  7. JavaScript标准库之——JSON
  8. 转帖:用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树
  9. 挖坟之Spring.NET IOC容器初始化
  10. 第三百二十五天 how can I 坚持
  11. 10个经典的Java main 方法面试题
  12. Python之路第三天,基础(3)-set,函数,内置函数,文件,三元运算,lambda
  13. FPGA开发(1)
  14. C++ Primer 学习笔记_98_特殊的工具和技术 --优化内存分配
  15. hdu_2955_Robberies(01背包)
  16. Android高仿qq及微信底部菜单的几种实现方式
  17. TCP长连接与短连接的原理及区别
  18. 小tip:生成一组不重复的随机数(去重的方法)
  19. 01_Python入门
  20. JavaScript(第十六天)【BOM基础】

热门文章

  1. writeObiect与序列化反序列化
  2. Window Server 2019 配置篇(3)- 建立hyper-v集群并在其上运行win10 pro虚拟机
  3. java 循环节长度
  4. vSphere vSwitch网络属性配置详解
  5. 简单总结Get与Post的区别
  6. 在登陆退出时候使用Vuex
  7. no_string_attached笔记
  8. 【pwnable.kr】bof
  9. java课程课后作业190502之单词统计
  10. python 的第一个界面程序(PyQt5)