回 帖 发 新 帖 刷新版面

主题:求助几个小程序

1:一个数如果恰好等于它的因子之和,这个数就称为“完数”,如6=1+2+3。求出1000内的完数。
2:把100~200之间的素数全部打印出来。
两道题不会做,有人帮忙写出程序吗?

回复列表 (共5个回复)

沙发

#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++写的,没有注释,凑合着看吧

板凳


[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 楼

第一题
#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 楼

#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 楼

第一题
#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);
   }
}
第二题把的范围改一下。

我来回复

您尚未登录,请登录后再回复。点此登录或注册