1 solutions

  • 0
    @ 2024-12-11 0:09:07

    C :

    #include<stdio.h>
    
    int main()
    {
    	int c,n,i,j,k,mini,s;
    	scanf("%d",&c);
    	while(c--)
    	{
    		scanf("%d",&n);
    		for(mini=100000000,i=1;i<=n;i++)
    			for(j=i;j*i<=n;j++)
    				if(n%(j*i)==0)
    				{
    					k=n/j/i;
    					s=(i*j+i*k+j*k)*2;
    					if(s<mini)
    						mini=s;
    				}
    		printf("%d\n",mini);
    	}
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    
    int main()
    {
    	int c,n,i,j,k,mini,s;
    	scanf("%d",&c);
    	while(c--)
    	{
    		scanf("%d",&n);
    		for(mini=100000000,i=1;i<=n;i++)
    			for(j=i;j*i<=n;j++)
    				if(n%(j*i)==0)
    				{
    					k=n/j/i;
    					s=(i*j+i*k+j*k)*2;
    					if(s<mini)
    						mini=s;
    				}
    		printf("%d\n",mini);
    	}
    	return 0;
    }
    

    Pascal :

    program juggle(input,output);
    var c,i,j,n,a,b,lala,n3:integer;
        max:longint;
    begin
     readln(lala);
     for i:=1 to lala do begin
      readln(n);
      max:=maxint;
      for j:=1 to n do
       if j*j*j>=n then begin n3:=j; break; end;
      for a:=1 to n3 do
       for b:=a to n do
        if (n mod(a*b)=0)and(n div a div b>=b) then begin
         c:=n div a div b;
         if (a*b+b*c+a*c)*2<max then max:=2*(a*b+b*c+a*c);
        end;
      writeln(max);
     end;
    end.
    
    

    Java :

    import java.util.*;
    
    public class Main{
        public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        int C = in.nextInt();
        for(int n = 1;n<=C;n++){
            int N = in.nextInt();
            int a = 1, b = N;
            int result = 2147483647;
            for(int i = 1;i<=N;i++)
            {
                for(int j = i;j*i<=N;j++)
                {
                    if(N%(i*j)==0)
                    {
                        int k = N/i/j;
                        int area = (i*j+i*k+j*k)*2;
                        if(area<result)
                        result = area;
                    }
                }
            }
            if(N==0) result = 0;
            System.out.println(result);
        }
    }
    }
    

    Python :

    def size(n):
        a=int(round(n**(1.0/3)))
        for i in range(a,0,-1):
            if n%i==0:
                x=i
                n/=i
                break
        a=int(round(n**(1.0/2)))
        for i in range(a,0,-1):
            if n%i==0:
                y=i
                z=n/i            
                break
        return 2*(x*y+y*z+z*x)
    t=input()
    for time in range(t):
        n=input()
        print size(n)
    
    • 1

    Information

    ID
    672
    Time
    1000ms
    Memory
    32MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By