问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

整数因子分解问题,为什么递归用错了,求牛人帮忙,先谢谢了

发布网友 发布时间:2023-10-10 18:28

我来回答

3个回答

热心网友 时间:2024-11-23 12:05

这个用递归式没有错,需要判断这个因子是否为素数,是素数,就是这个因子就只能出现一次,不是素数,继续分解
分解用for循环游历2~n-1

int sushu(int n)
{} //这个不写了,网上很多代码,是素数返回0.不是素数返回1,我直接调用

int q(int n)
{
int i,s;
if(sushu(n))
s=0;
else
{
for(i=2;i<n;i++)
if(n%i==0)
{
s+=1;
s+=q(i);
}
}
return s;
}追问额,能详细一点吗?谢谢

追答意思就是这个因子是素数了,就不用再分解了
不是素数,就再分解,同时可能加上1

热心网友 时间:2024-11-23 12:06

int q(int n){

int result = 1;
int i = n - 1;
for(i = n - 1; i > 1; i-- )
{
if(n % i == 0 )
{
result += q(n / i);
}
}
return result;

}

热心网友 时间:2024-11-23 12:06

#include<stdio.h>
main()
{
int n;
int q(int n);
while(scanf("%d",&n)!=EOF){
printf("%d\n",q(n));
}
return 0;
}
int q(int n){

int i,result=1;
if(n==1)
return result;
else if(n==2)
return result;
else if(n==3)
return result;
else if(n>3)
for(i=n-1;i>1;i--)
if(n%i==0)
result=result+q(i);
return result;
}追问额,答案对了,但提交却是超时,求大牛指点

追答你把递归的方法改为非递归的方式试试,反正递归调用的确是耗时。我先想想。。
我用C++写的,不知道能不能过:
#include
#include
using namespace std;
int main()
{
int i,n,count,current_position;
vectorob;
while(cin>>n)
{
ob.clear();
count=1;
current_position=0;
ob.push_back(n);
ob.push_back(-1);
while(current_position>-1&&ob[current_position]!=-1)
{
n=ob[current_position];
for(i=n/2;i>1;i--)
if(!(n%i))
{
count++;
ob[current_position]=n/i;
ob.push_back(-1);
current_position++;
}
current_position--;
}
cout<<count<<endl;
}
return 0;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人大政协辅助岗是什么 政务辅助人员是干什么 政府辅助人员是什么 努比亚的海拔什么意思 北非努比亚现在怎么样了啊 相邻权的相关法律 梦见老公离世了什么预兆 梦见自己老公走掉 你出轨后 怎么操作才没被发现? 评评怎么造句 拥有四百多行代码的java银行卡存取款系统 有默这个字的好看网名27 踢球崴脚了 脚踝两侧肿起 怎么办 用什么药7 小米9 好不好用 性能方面怎么样77 上海交通大学网络教学用什么平台 一个男人对你说你在他心里很重要他很在乎你 这意味着什么?47 福州贵安新天地好玩吗1 2016款大众polo最新报价最低多少钱最高优惠4万 打球把脚崴了,肿的好大,但是脚踝内侧疼,外侧不疼,谁知道怎么...1 脚踝韧带粘连怎么办43 window7系统IE浏览器打不开怎么回事?急1 脚踝的陈旧性韧带损伤,韧带粘连应该如何治疗4 卡卡西到底是不是火影?鸣人是几代?历代正式火影分别是谁643 十三岁的花样年华400字作文 求刘德华张学友的歌mp3模式百度云4 ...金黄又干净的腊肉是怎样熏出来的?需要注意些什么? 一个正方体和一个长方体拼成一个新的长方体,新长方体的表面积比...68 一个正方体和一个长方体拼成一个新的长方体,新长方体的表面积比...24 买大众POLO多少钱啊?21 中国银行住房贷款过了逾期10天没还 可以么 利息怎么算呢22 奋斗里陆涛对夏琳说的话 java控制台输入银行卡是卡号随机数怎么弄啊,求代码,没有思...1 奋斗夏琳和陆涛16集的台词18 找一款和太古神王差不多的游戏。角色和画面画质要好。要玄幻风的... 《奋斗》中,陆涛和夏琳用四川话说的那段台词5 找一款跟太古神王差不多的游戏,画质也差不多的游戏,4 《奋斗》中陆涛对夏琳说的话1 脚踝的陈旧性韧带损伤,韧带粘连应该如何治疗 我不学体育,但我高考想走单招报羽毛球专业可以吗? 唐朝为什么有能力平定北方民族1 如何登陆扬州大学网络教学平台19 我们常说股市的三大板块是哪三个?5 目前有哪些网络教育平台29 火影忍者中第一代火影到第五代火影分别是谁?94 同一手机号注册两个,前一个怎么登 小米9手机怎么样 好用吗463 画质最好的手游有哪些220 奋斗中徐志森给陆涛讲的经典对白?26 打篮球崴脚了 整个脚全肿了 侧面还有淤青 两侧都有 球专业人...19 小米9好不好14