学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!
附上汇总贴:小猴编程C++ | 汇总-CSDN博客
【题目描述】
对于任意一个正整数n,每次减去n的最小质因子d,得到新的正整数n再重复上述操作,最终总能够得到0。
例如,初始正整数n为9,计算过程为:
9-3=6
6-2=4
4-2=2
2-2=0
共需要计算4次得到0。
请你计算正整数n需要计算几次得到0。
【输入】
第一行一个正整数。
【输出】
一个整数,表示计算的次数。
【输入样例】
9
【输出样例】
4
【代码详解】
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n;
cin >> n;
long long cnt = 0;
while (n!=0) {
if (n%2!=0) {
long long d=-1;
for (long long i=2; i*i<=n; i++) {
if (n%i==0) {
d = i;
break;
}
}
if (d==-1) d = n;
n -= d;
cnt++;
} else {
cnt += n/2;
break;
}
}
cout << cnt << endl;
return 0;
}
【运行结果】
9
4