【ACM】杭電OJ 2040
阿新 • • 發佈:2018-11-25
第一個程式是 15MS
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <set> #include <algorithm> using namespace std; const int maxn = 600000; int vis[maxn]; int main () { int m,nn,n,sum1,sum2,i,j; scanf("%d",&nn); while(nn--) { scanf("%d%d",&m,&n); sum1=1;sum2=1; for(i=2;i<=sqrt(double(m));i++) { if(m%i==0) sum1+=(i+m/i); } if(sum1!=n) { printf("NO\n"); continue; } else { for(i=2;i<=sqrt((double)n);i++) { if(n%i==0) { sum2+=(i+n/i); } } if(sum2!=m) { printf("NO\n"); } else { printf("YES\n"); } } } return 0; }
第二個程式是93MS
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <set> #include <algorithm> using namespace std; const int maxn = 600000; int vis[maxn]; int main () { int m,nn,n,sum1,sum2,i,j; scanf("%d",&nn); while(nn--) { scanf("%d%d",&m,&n); sum1=1;sum2=1; for(i=2;i<m;i++) { if(m%i==0) sum1+=i; } if(sum1!=n) { printf("NO\n"); continue; } else { for(i=2;i<n;i++) { if(n%i==0) { sum2+=i; } } if(sum2!=m) { printf("NO\n"); } else { printf("YES\n"); } } } return 0; }