1 条题解

  • 0
    @ 2023-6-11 12:15:49

    C :

    #include<stdio.h> 
    void wanmeishu(int n){
    	int i,c=1;
    	for(i = 2;i <= n / 2;i++){
    		if(n % i == 0){
    			c += i;
    		}
    	}
    	if(c == n){
    		printf("%d ",n);
    	}
    }
    
    int main(){ 
    	int m,n,i;
    	scanf("%d %d",&m,&n);
    	for(i = m;i <= n;i++){
    		wanmeishu(i);
    	}
    
    	return 0;
    } 
    

    C++ :

    #include<iostream>
    #include<cmath>
    using namespace std;
    
    
    bool WanMeiShu(int n);
    
    int main(){
    	
    	int a,b;
    	cin>>a>>b;
    	
    	for(int i=a;i<=b;i++){
    		
    		if(WanMeiShu(i)){
    			cout<<i<<" ";
    		}
    	}
    } 
    
    bool WanMeiShu(int n){
    	
    	int s;
    	int j;
    	s=1; 
    	
    	
    	for(int i=2;i<=sqrt(n);i++){
    		if(n%i==0){
    			s=s+i;
    			j=n/i;
    			
    			if(i!=j){
    				s=s+j;
    			}
    				
    		}
    	}
    	
    	if(s==n)
    		return true;
    	else
    		return false;
    	
    }
    
    

    Python :

    import math;
    def wanmeishu(n):
       s = 0;
       for i in range(1,n):
          if n % i == 0:
             s += i;
       return s == n;
    
    a,b = map(int,input().split());
    for i in range(a,b+1):
           if wanmeishu(i) == True:
                  print(i);
                 
           
    
    
    • 1

    【入门】输出m和n范围内的完全数(完美数)

    信息

    ID
    2061
    时间
    1000ms
    内存
    16MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者