c语言的编程题目,求大佬帮忙看看
编写程序,输入自然数n,输出1~n以内的所有完数,并输出其因子。一个数若恰好等于它的各因子之和,即称其为完数,如6=1+2+3,其中1、2、3为因子,6为因子之和。【注:...
编写程序,输入自然数n,输出1~n以内的所有完数,并输出其因子。一个数若恰好等于它的各因子之和,即称其为完数,如6=1+2+3,其中1、2、3为因子,6为因子之和。【注:要求输出时按以下格式连同完数的因子一同输出,每个完数输出占一行。】例如:输入30输出:6=1+2+328=1+2+4+7+14我现在写的代码可以做到输入1个数然后输出它的完数,但是怎么做到xxx=x+x+x的这种格式。能在我现在写的代码的基础上改动吗??
展开
展开全部
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编写程序,输入自然数n,输出1~n以内的所有完数,并输出其因子。一个数若恰好等于它的各因子之和,即称其为完数,如6=1+2+3,其中1、2、3为因子,6为因子之和。【注:要求输出时按以下格式连同完数的因子一同输出,每个完数输出占一行。】例如:输入30输出:6=1+2+328=1+2+4+7+14我现在写的代码可以做到输入1个数然后输出它的完数,但是怎么做到xxx=x+x+x的这种格式。能在我现在写的代码的基础上改动吗??
答:能在你的代码的基础上改动完成题目要求。
方法:把if(k==i)printf("%d\n",i);
这一句改成下面的语句即可:
if(k==i){
printf("%d=",i);
k=0;
for(j=1;j<i;j++)
if(i%j==0){
k++;
if(k!=1)printf("×");
printf("%d",j);
}
printf("\n");
}
就可以了。
如果有什么不明白之处请留言。
答:能在你的代码的基础上改动完成题目要求。
方法:把if(k==i)printf("%d\n",i);
这一句改成下面的语句即可:
if(k==i){
printf("%d=",i);
k=0;
for(j=1;j<i;j++)
if(i%j==0){
k++;
if(k!=1)printf("×");
printf("%d",j);
}
printf("\n");
}
就可以了。
如果有什么不明白之处请留言。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
#include <vector>
using namespace std;
vector<int> factor;
void cal_wan(int n)
{
factor.clear();
for(int i=1;i<n;i++)
{
if(!(n%i))
factor.push_back(i);
}
int sum = 0;
for(int i=0;i<factor.size();i++)
sum += factor[i];
if(sum == n)
{
cout<<n<<"=";
for(int i=0;i<factor.size()-1;i++)
cout<<factor[i]<<"+";
cout<<factor.back()<<endl;
}
}
int main(int argc,char** argv)
{
int n;
cout<<"please input a number:"<<endl;
cin>>n;
for(int i=2;i<n;i++)
cal_wan(i);
system("pause");
return 0;
}
#include <vector>
using namespace std;
vector<int> factor;
void cal_wan(int n)
{
factor.clear();
for(int i=1;i<n;i++)
{
if(!(n%i))
factor.push_back(i);
}
int sum = 0;
for(int i=0;i<factor.size();i++)
sum += factor[i];
if(sum == n)
{
cout<<n<<"=";
for(int i=0;i<factor.size()-1;i++)
cout<<factor[i]<<"+";
cout<<factor.back()<<endl;
}
}
int main(int argc,char** argv)
{
int n;
cout<<"please input a number:"<<endl;
cin>>n;
for(int i=2;i<n;i++)
cal_wan(i);
system("pause");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询