#include<stdio.h> #include<math.h> int ishuzhi(int a,int b) { if(a==1||b==1) return 1; int min=a<b?a:b; for(int i=2;i<=min;i++) { if(a%i==0&&b%i==0) return 0; } return 1; } int main() { int n,m,c,d; int a=1000000,b=1000000; while(scanf("%d %d",&n,&m)!=EOF) { int sum=m/n; int min=a+b; for(int i=1;i<=sum;i++) { if(sum%i==0) { if(ishuzhi(i,sum/i)==1) { c=i*n;d=sum/i*n; // printf("%d %d %d\n",c,d,min); } } else { continue; } if((c+d)<min) { a=c;b=d; min=a+b; } } if(a>b) { int x=b;b=a;a=x; } printf("%d %d\n",a,b); } } |
Double click to view unformatted code.