#include int main(void) { unsigned long long A,B,surplus = 1,left,right,most_anser; scanf("%llu %llu",&A,&B); // printf("%llu %llu\n",A, B); if(A+B < A*B){ right = A+B; left = B; }else{ right = B; left = A+B; } // printf("%llu %llu\n",left, right); while(surplus != 0){ surplus = left % right; //最大公約数を保存 most_anser = right; left = right; right = surplus; // printf("%llu %llu\n",left, right); } printf("%llu",most_anser); return 0; }