結果
問題 | No.192 合成数 |
ユーザー | C_kumo |
提出日時 | 2019-01-21 20:05:40 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 1 ms / 2,000 ms |
コード長 | 795 bytes |
コンパイル時間 | 370 ms |
コンパイル使用メモリ | 32,512 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-15 13:14:20 |
合計ジャッジ時間 | 1,550 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 25 |
ソースコード
#include <stdio.h> #include <stdlib.h> #include <math.h> short p[1000]; short pNum; void makePrimeList(short n); int main(void) { short n,i,j; scanf("%hd",&n); makePrimeList(n+100); j=0; for (i=n-100;i<=n+100;i++) { for (;j<pNum;j++) { if (p[j] < i) continue; if (p[j] > i && i!=1) { printf("%hd\n",i); return 0; } break; } } return 0; } // return number of prime void makePrimeList(short n) { short i,j,*tmpP; tmpP = (short *)malloc(sizeof(short) * n); tmpP[0] = 1; for (i=1;i<n;i++) tmpP[i] = 0; pNum = 0; for (i=2;i<=sqrt(n);i++) { if (tmpP[i-1]==1) continue; p[pNum] = i; pNum++; for (j=i;j<=n;j+=i) { tmpP[j-1] = 1; } } for (i=(int)sqrt(n);i<=n;i++) { if (tmpP[i-1]==1) continue; p[pNum] = i; pNum++; } return; }