从10到1000的1000以内所有完数对等数c++编程

C++编程,求1000以内的完数并每行按格式输出其因子:6=1+2+3_百度知道
提问者采纳
#include&&iostream&using&namespace&int&main(){for(int&i=1;i&=1000;i++){int&sum=0,a;for(int&j=1;j&i;j++)if(i%j==0){sum=sum+j;//假如找到一个因子就加起来a=j;//for循环执行完后a就是最大的那个因子}if(sum==i)//判断因子之和与i是否相等{cout&&i&&"=";for(int&k=1;k&i;k++)if(i%k==0){cout&&k;if(k!=a)cout&&'+';//假如这个k不是最大的那个因子则输出+号}cout&&//每输出完一个就换行}}}还有不懂可以问 &
提问者评价
谢谢大神了!!怒顶!!!
其他类似问题
为您推荐:
其他1条回答
#include&&stdio.h&int&main(){ int&i,&j,&k,&s,&factor[100]; for(i=2;&i&=1000;&++i){
s&=&k&=&0;
for(j=1;&j&i;&++j){
if(i%j==0){
factor[k++]&=&j;
printf(&%d=%d&,&i,&factor[0]);
for(j=1;&j&k;&++j)
printf(&+%d&,&factor[j]);
putchar('\n'); } return&0;}
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁写的是输出1000以内的素数,但打在屏幕上,每10个数换行后_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:171,502贴子:
写的是输出1000以内的素数,但打在屏幕上,每10个数换行后收藏
#include &stdio.h&void main(){ int a,b,c=0; float e,d=0,f; for(a=2;a&1001;a++) {f=0;for(b=2;b&a;b++){if(a%b==0){f=1;b=a;}}if(f==0){ d=d+a; c++; printf(&%d &,a);}if(c%10==0){printf(&\n&);} } e=d/c; printf(&\n&); printf(&平均数=%.2f&,e);}
每10个换行后,间距不同
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或请问#define N 1000+10int a[N]; 或#define N 1000int a[N+5];相较于#define N 1000int a[N];有什么优势呢?
以前做过一道题,NOIP,边界是128x128,我会想循环到底是&=128,从0还是还是从1开始?++n还是n++……索性130x130不就可以了么
在队友的调教下我已经养成了能用1000绝不用1001的习惯。后者有个坏处,如果代码写搓了,哪里有个不期望的数组越界,但是越的不明显,这种情况下会比较难debug,因为越界之后可能还是在这个数组的范围内,对别的变量没有破坏性修改。而前者的话,越界之后要么程序挂掉,要么修改了其它变量的值,这时候就能比较容易的发现程序的异常(比如结果不对啦之类的)。对于那些数据规模和题目描述不一致的题目,我只想对出题人说:吔屎啦你!
我觉得这不像编程的高手, 倒像是搞OI的.------------------------------------------------对于搞OI的嘛, 每个人或多或少都碰到过数组overflow的问题, 有时候不明所以能调试得欲仙欲死.想当年某段代码中我开了两个数组a和b, 然后Debug了一个下午为什么改a, b也会跟着变.请问#define N 1000+10int a[N]; 或#define N 1000int a[N+5];相较于#define N 1000int a[N];有什么优势呢?
话说,为什么都用define啊……在ACMer基本都是C++党的情况下,const int MAXN=1000;不是更安全且更值得推荐吗?ACM/OI圈中数组都有开大一点的习惯,加多少,怎么加的习惯各不相同,这种做法的来源已不可考,但是在一代代前人写博客/直接言传身教的影响下,这个习惯已被ACM/OI圈所接受、默认。这个习惯如此有生存力,个人感觉可能有以下原因:1、如果写到一半发现下标从0开始不合适,想改成下标从1开始的时候,养成这种习惯,数组多那么一点,那只需要改光标附近的代码即可,不需要回头再改改数组范围——回头改是最容易被遗忘的。2、如果是char数组,总有人会忘了最后有个\0来作为结束符的,而这个\0就要一个数组位置,一般题目里告诉了你字符串长度,但是,忘了多加1就可能要覆盖到别地导致莫名其妙的Wrong Answer/Runtime Error/Time Limit Exceeded了,更别提半路想起来下标从1开始更方便的时候,数组大小要长度+2不是+1了,那就干脆+5、+10。上面都是还算正常的,下面的就(也不是没有)……1、拿多出来的那些数组全0位置当边界,省事,也不用判断边界写一大堆了2、受到过奇怪的题目的坑害,知道真相后,对出题人给的数据范围丧失了信任3、以前莫名其妙数组开刚刚好,交上去居然WA/RE了,听别人意见,+10,居然就过了,就过了,就过了~我干脆也每个数组都+10、+10、+104、+5、+10很顺口啊,看起来很“整”啊===========================话说define定义常量里直接做加法很危险的啊!比如,我想开个线段树,维护1~100000如果define的是 #define N 结果线段树数组开成了int maxnum[N*4];直接起飞了!!!而且还很难看出来!我反正是没事绝对不玩define的,const int 就挺好的。
在队友的调教下我已经养成了能用1000绝不用1001的习惯。后者有个坏处,如果代码写搓了,哪里有个不期望的数组越界,但是越的不明显,这种情况下会比较难debug,因为越界之后可能还是在这个数组的范围内,对别的变量没有破坏性修改。而前者的话,越界之后要么程序挂掉,要么修改了其它变量的值,这时候就能比较容易的发现程序的异常(比如结果不对啦之类的)。对于那些数据规模和题目描述不一致的题目,我只想对出题人说:吔屎啦你!
我觉得这不像编程的高手, 倒像是搞OI的.------------------------------------------------对于搞OI的嘛, 每个人或多或少都碰到过数组overflow的问题, 有时候不明所以能调试得欲仙欲死.想当年某段代码中我开了两个数组a和b, 然后Debug了一个下午为什么改a, b也会跟着变.
普通的过日子的学生

我要回帖

更多关于 1000以内所有完数 的文章

 

随机推荐