/************************************************************** 初項1、公差1、の等差数列の和が入力した数と同じになる場合は 「YES」とその項数を出力し、同じにならない場合は「NO」と出力する プログラム 入力:指定した数値n 出力:nと数列の和が同じになる場合は「YES」とその項数、違う場合は「NO」 **************************************************************/ #include #include int main(){ long long int i = 1; /* 等差数列の項数 */ long long int n; /* 指定した数値n */ scanf("%"SCNd64"",&n); /* 入力 */ /* 等差数列の和がn以上になるまで*/ while( (i*(i+1))/2 < n ){ i++; } if( (i*(i+1))/2 == n ){ /* nと等差数列の和が同じだった場合 */ printf("YES\n%lld\n",i); /* 「YES」とその項数を出力 */ }else{ printf("NO\n"); /* 「NO」を出力 */ } return 0; }