結果
問題 | No.106 素数が嫌い!2 |
ユーザー | naimonon77 |
提出日時 | 2015-10-14 22:51:03 |
言語 | C++11 (gcc 11.4.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,161 bytes |
コンパイル時間 | 357 ms |
コンパイル使用メモリ | 51,576 KB |
最終ジャッジ日時 | 2024-11-14 19:19:32 |
合計ジャッジ時間 | 706 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.cpp: In function ‘void Eratosthenes(int)’: main.cpp:21:23: error: ‘sqrt’ was not declared in this scope 21 | for(int i = 2; i < sqrt((double)N); i++){ | ^~~~
ソースコード
#include <iostream> #include <algorithm> #include <string> using namespace std; #define REP(i,a,b) for(i=a;i<b;i++) #define rep(i,n) REP(i,0,n) #define SQR(X) ((X)*(X)) typedef long long ll; typedef unsigned long long ull; typedef long double lb; /* ここからが本編 */ static int arr[2000005]; static int prime[200000]; void Eratosthenes(int N){ for(int i = 0; i < N; i++){ arr[i] = 1; } for(int i = 2; i < sqrt((double)N); i++){ if(arr[i]){ for(int j = 0; i * (j + 2) < N; j++){ arr[i *(j + 2)] = 0; } } } int a = 0; for(int i = 2; i < N; i++){ if(arr[i]){ prime[a++] = i; } } } int main(void) { ull i=1,j,k; int n; int c; int m; int rep = 0; Eratosthenes(2000003); cin >> n; cin >> c; for(i=2;i<=n;i++) { int cnt = 0; int m = i; for(j=0;SQR(prime[j]) <= m;j++) { if(m % prime[j] == 0){ cnt++; while(m % prime[j] == 0){ m /= prime[j]; } } } if(m != 1) cnt++; if(cnt >= c) rep++; } cout << rep << endl; return 0; }