思路:直接暴力。。水题
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cmath> using namespace std; bool is_ok(int a,int b,int c,int d) { if(a==b||b==c||a==c||a==d||b==d||c==d) return false; return true; } int main() { int t; scanf("%d",&t); for(int cases=1;cases<=t;cases++) { int n; scanf("%d",&n); int num[4]; memset(num,0,sizeof(num)); int cnt=0,i; for(i=2;i<=(int)sqrt(n);i++) { if(n%i==0) { num[cnt++]=i; num[cnt++]=n/i; break; } } for(;i<=(int)sqrt(n);i++) { if(n%i==0) { if(is_ok(num[0],num[1],i,n/i)) { num[cnt++]=i; num[cnt++]=n/i; break; } } } printf("Case #%d: %d = %d * %d = %d * %d ",cases,n,num[0],num[1],num[2],num[3]); } return 0; }