結果

問題 No.36 素数が嫌い!
ユーザー 綾地寧々
提出日時 2015-07-22 13:09:42
言語 C90
(gcc 12.3.0)
結果
AC  
実行時間 93 ms / 5,000 ms
コード長 653 bytes
コンパイル時間 336 ms
コンパイル使用メモリ 23,936 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-06-27 00:21:29
合計ジャッジ時間 1,602 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 26
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c: In function ‘main’:
main.c:12:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   12 |         scanf("%lld", &n);
      |         ^~~~~~~~~~~~~~~~~

ソースコード

diff #

#include <stdio.h>
#include <math.h>
#include <limits.h>

int main(void) {
	unsigned long long int i = 0;
	unsigned long int j = 0;
	unsigned char is_prime = 1;
	unsigned long long int n = 0;
	unsigned char fact_time = 0;

	scanf("%lld", &n);

	i = 1;
	while ( fact_time <= 2 ) {
		if ( n == 1 ) {
			break;
		}
		is_prime = 1;
		for ( i=(i+1); i<=sqrt(n); i++ ) {
			if ( !(n % i) ) {
				is_prime = 0;
				break;
			}
		}
		if ( is_prime ) {
			fact_time++;
			break;
		}
		while ( !(n % i) ) {
			n /= i;
			if ( fact_time < UCHAR_MAX )
				fact_time++;
		}
	}

	if ( fact_time > 2 ) {
		printf("YES\n");
	}
	else {
		printf("NO\n");
	}
	return 0;
}
0