結果
問題 |
No.106 素数が嫌い!2
|
ユーザー |
![]() |
提出日時 | 2017-07-26 15:54:23 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 38 ms / 5,000 ms |
コード長 | 625 bytes |
コンパイル時間 | 1,891 ms |
コンパイル使用メモリ | 157,704 KB |
実行使用メモリ | 19,304 KB |
最終ジャッジ日時 | 2024-10-09 17:51:04 |
合計ジャッジ時間 | 2,692 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 13 |
コンパイルメッセージ
main.cpp:4:1: warning: ISO C++ forbids declaration of ‘main’ with no type [-Wreturn-type] 4 | main(){ | ^~~~ main.cpp: In function ‘int main()’: main.cpp:23:10: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 23 | scanf("%d%d",&N,&K); | ~~~~~^~~~~~~~~~~~~~ main.cpp:17:19: warning: iteration 1999998 invokes undefined behavior [-Waggressive-loop-optimizations] 17 | if(prime[i])continue; | ~~~~~~~^ main.cpp:16:21: note: within this loop 16 | for(int i = 2;i <= 2000000;i++){ | ~~^~~~~~~~~~
ソースコード
#include<bits/stdc++.h> int prime[2000000]; int factor[2000001]; main(){ for(int i = 0;i <= 2000000;i++){ factor[i] = 0; } prime[0] = 1; prime[1] = 1; for(int i = 2;i*i <= 2000000;i++){ if(prime[i])continue; for(int j = i*2;j < 2000000;j+=i){ prime[j] = 1; } } for(int i = 2;i <= 2000000;i++){ if(prime[i])continue; for(int j = i;j <= 2000000;j+=i){ factor[j]++; } } int N,K,count = 0; scanf("%d%d",&N,&K); for(int i = 2;i <= N;i++){ if(factor[i]>=K)count++; } printf("%d\n",count); }