C++的问题 整数的因子数 Time Limit:2000MS Memory Limit:32768K
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 19:33:31
C++的问题 整数的因子数 Time Limit:2000MS Memory Limit:32768K
Description:
找出整数的所有因子数.一个整数n的因子数为包含它自身的所有因子的个数.例如:12的因子数为6(1,2,3,4,6,12).
Input:
输入数据中含有一些整数n(1≤n<2^32).
Output:
对于每个n,列出其所有因子数,每个n加上冒号单独列一行.
Sample Input:
11 22 33 24
Sample Output:
11:2
22:4
33:4
24:8
________________________________________________
我写的超时了 ,求更好的算法.
#include
#include
using namespace std;
void main()
{
int n;
while(cin>>n)
{
if(n>=1)
{
cout
Description:
找出整数的所有因子数.一个整数n的因子数为包含它自身的所有因子的个数.例如:12的因子数为6(1,2,3,4,6,12).
Input:
输入数据中含有一些整数n(1≤n<2^32).
Output:
对于每个n,列出其所有因子数,每个n加上冒号单独列一行.
Sample Input:
11 22 33 24
Sample Output:
11:2
22:4
33:4
24:8
________________________________________________
我写的超时了 ,求更好的算法.
#include
#include
using namespace std;
void main()
{
int n;
while(cin>>n)
{
if(n>=1)
{
cout
我电脑算着也没问题,可能你电脑cpu较老吧.
算法改进:
1.上面这个程序是以根号n为循环边界,个人认为这时还不如用n/2,开根可比除2慢多了.
2.当得到n的第一个因子,比如说7时,不如n /= 7;再重新从2~n/2循环判断.举例说:23324 = 2*2*7*7*7*17,如果用上例的方法,会计算根号23324或者23324/2次,而用改进2中的方法的话,只用到2+2+7/2 + 7/2 + 7/2 + 17/2次也就是27次运算,11662:27可以说是很悬殊了.
按照以上改进我写了一个拆分整数的程序,结果是最简因子形式(质因子),计算普通因子个数的任务就交给你了,有了高中排列组合的知识,很好算的,小心其中重复出现的质因子.
#include
using namespace std;
int child(int n) //如果是素数则返回原数n,否则返回一个因子
{
if (n >n;
if (n
算法改进:
1.上面这个程序是以根号n为循环边界,个人认为这时还不如用n/2,开根可比除2慢多了.
2.当得到n的第一个因子,比如说7时,不如n /= 7;再重新从2~n/2循环判断.举例说:23324 = 2*2*7*7*7*17,如果用上例的方法,会计算根号23324或者23324/2次,而用改进2中的方法的话,只用到2+2+7/2 + 7/2 + 7/2 + 17/2次也就是27次运算,11662:27可以说是很悬殊了.
按照以上改进我写了一个拆分整数的程序,结果是最简因子形式(质因子),计算普通因子个数的任务就交给你了,有了高中排列组合的知识,很好算的,小心其中重复出现的质因子.
#include
using namespace std;
int child(int n) //如果是素数则返回原数n,否则返回一个因子
{
if (n >n;
if (n
C++的问题 整数的因子数 Time Limit:2000MS Memory Limit:32768K
ACM的 “顺”序列 Time Limit:1000MS Memory Limit:32768K
判断平方数Time Limit:1000MS Memory Limit:65536K题型:编程题 语言:C语言Descr
C语言问题.求和求数列的和Time Limit: 2000/1000 MS (Java/Others) Memory L
计算题 Time Limit: 1000MS Memory limit: 65536K
一道c语言题目棋盘上的距离Time Limit:1000MS Memory Limit:65536KTotal Subm
C++ACM竞赛题植树节 Time Limit:1000MS Memory Limit:32768KDescriptio
新手请教ACM水题Q - 数据的交换输出Time Limit:1000MS Memory Limit:32768KB 6
英语翻译重写的程序Time Limit:1000MS Memory Limit:65536KTotal Submit:5
C语言一道简单的题目An Easy ProblemTime Limit:1000MS Memory Limit:6553
C语言:求函数值 求函数值Time Limit:30000MS Memory Limit:65536K题型:编程题 语言
哪里,求用c语言编写幸运数Time Limit:1000MS Memory Limit:65536KTotal Subm