主题:求助几个小程序
小春哥哥
[专家分:0] 发布于 2007-05-03 01:39:00
1:一个数如果恰好等于它的因子之和,这个数就称为“完数”,如6=1+2+3。求出1000内的完数。
2:把100~200之间的素数全部打印出来。
两道题不会做,有人帮忙写出程序吗?
回复列表 (共5个回复)
沙发
sdlaoyou [专家分:60] 发布于 2007-05-03 15:23:00
#include<iostream>
using namespace std;
int main(){
int i,j,sum,k;
for(i=2;i<1000;i++){sum=0;
for(j=1;j<=i/2;j++){
if(i%j==0){
sum+=j;}}
if(sum==i){
cout<<sum<<endl;
cout<<i<<",";
cout<<"its factors are";
for(k=1;k<i;k++){
if(i%k==0)
cout<<k<<",";}
cout<<endl;}}
return 0;}//用c++写的,没有注释,凑合着看吧
板凳
chwen822 [专家分:1540] 发布于 2007-05-04 14:38:00
[em1][em1][em1]
1.
#include<iostream.h>
int main ()
{
int m,s,i;
for(m=2;m<1000;m++)
{
s=0;
for(i=1;i<m;i++)
if((m%i)==0)
s+=i;
if(s==m)
{
cout<<"完数有:"<<m;
{
for(i=1;i<m;i++)
if((m%i)==0)
cout<<" "<<i;
cout<<endl;
}
}
}return (0);
}
2.
#include<iostream.h>
#include<math.h>
int main()
{
int m,k,i,n;
for(m=101;m<=200;m++)
{
k=sqrt(m);
for(i=2;i<=k;i++)
{
if(m%i==0)
break;
}
if(i>=k+1)
{
cout<<m;
n+=1;
}
if(n%10==0)
cout<<endl;
}
cout<<endl;
} [em20][em20][em20]
3 楼
lijie169 [专家分:170] 发布于 2007-05-06 10:21:00
第一题
#include<stdio.h>
void main()
{ int i ,t,s;
for(i=2;i<=1000;i++)
{
for(t=1;t<=i/2;t++)
{s=0;if(i%t==0)s=s+t;}
if(s==i)printf("%10d",s);
}
}
4 楼
lijie169 [专家分:170] 发布于 2007-05-06 10:37:00
#include<stdio.h>
void main()
{ int i ,t;
for(i=101;i<=200;i++)
{for(t=2;t<=i/2;t++)
if(i%t==0)break;if(i/t<2)
printf("%d\n",i);}
}
5 楼
twentypipi [专家分:0] 发布于 2007-08-19 21:22:00
第一题
#include<stdio.h>
void main()
{ int i ,j,s;
for(i=2;i<=1000;i++)
{
for(j=1;j<=i/2;j++)
{s=0;if(i%j==0)s=s+j;}
if(s==i)printf("%10d",s);
}
}
第二题把的范围改一下。
我来回复