白駿4948号とバートランは孔俊の質問に答えた.
1006 ワード
https://www.acmicpc.net/problem/4948
#include
int main(void)
{
int c=0,a,b;
int i, j, arr[246913] = {0, }; arr[0] = 1, arr[1] = 1;
for(j = 2; j < 246913/j; j++)
{
if(arr[j] == 1)
continue;
for(i = j * j; i < 246913; i += j)
if(i % j == 0) arr[i] = 1;
}
各配列の位置に応じて、小数面が0小数でない他の数を1とする.小数点を検索
for(;;)//かいてんむげんはいち
{
scanf("%d",&a);
入力した整数が0の場合、繰り返しは停止します.
{
break;
}
else if(a==1)/入力した整数が1の場合、出力1
{
printf("1\n");
}
else if(a>1)
{
for(b=a+1;b<2 a;b+)/入力する整数がaの場合、a+1
{から2 a-1に移動し、上の配列に小数を見つけ、その位置の配列の値が0の場合、cの変数に1を加算します.
if(arr[b]==0)
{
c++;
}
}
printf("%d\n",c);
}
c=0;//初期化後は入力された数値に影響しません.
#include
int main(void)
{
int c=0,a,b;
int i, j, arr[246913] = {0, }; arr[0] = 1, arr[1] = 1;
for(j = 2; j < 246913/j; j++)
{
if(arr[j] == 1)
continue;
for(i = j * j; i < 246913; i += j)
if(i % j == 0) arr[i] = 1;
}
各配列の位置に応じて、小数面が0小数でない他の数を1とする.小数点を検索
for(;;)//かいてんむげんはいち
{
scanf("%d",&a);
入力した整数が0の場合、繰り返しは停止します.
{
break;
}
else if(a==1)/入力した整数が1の場合、出力1
{
printf("1\n");
}
else if(a>1)
{
for(b=a+1;b<2 a;b+)/入力する整数がaの場合、a+1
{から2 a-1に移動し、上の配列に小数を見つけ、その位置の配列の値が0の場合、cの変数に1を加算します.
if(arr[b]==0)
{
c++;
}
}
printf("%d\n",c);
}
c=0;//初期化後は入力された数値に影響しません.
}
}Reference
この問題について(白駿4948号とバートランは孔俊の質問に答えた.), 我々は、より多くの情報をここで見つけました https://velog.io/@junjun1215/백준-4948번-베르트랑-공준-문제-풀기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol