内容发布更新时间 : 2024/11/20 1:31:58星期一 下面是文章的全部内容请认真阅读。
1.质因数分解 描述
已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。
格式
输入格式
输入只有一行包含一个正整数n。
输出格式
输出只有一行包含一个正整数p, 即较大的那个质数。
样例1
样例输入1
21
样例输出1
7
限制
1S
提示
【数据范围】 对于60%的数据,6 ≤ n ≤ 1000。 对于100%的数据,6 ≤ n ≤ 2*10的9次方 问题分析:
如果一个数n是两个素数的乘积,那么其中一个素数必然小于或等于n的开平方。
AC的C++程序如下:
1. #include
4. using namespace std; 5.
6. int main() 7. {
8. long n; 9.
10. cin >> n; 11.
12. if(n % 2 == 0)
13. cout << n / 2 << endl; 14. else {
15. int start = sqrt(n) / 2; 16. start = start * 2 + 1; 17.
18. for(int i=start; i>=3; i-=2) { 19. if(n % i == 0) {
20. cout << n / i << endl; 21. } 22. } 23. } 24.
25. return 0; 26. }
2.级数求和
问题分析:简单的求和比较问题。 程序说明:需要注意类型。
描述
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
格式
输入格式
输入 k
输出格式
输出 n
样例1
样例输入1
1
样例输出1
2
限制
每个测试点1s
AC的C++程序如下:
1. #include
3. using namespace std; 4.
5. int main() 6. {
7. int k;
8. long n = 0; 9. double sum = 0; 10.
11. cin >> k;
12. while(sum <= k) { 13. n++;