#include <stdio.h>
#include <string.h>
int main()
{
while(1){
int N,M,number[1000001],cnt=0;
scanf("%d",&N);
if(N==0){
break;
}
for (int i=2;i<=2*N;i++){
number[i]=i;
}
for (int i=2;i<=2*N;i++){
if(number[i]==0){
continue;
}
for(int j=i+i;j<=2*N;j+=i){
number[j]=0;
}
}
for(int i=N+1;i<=2*N;i++){
if(number[i]!=0){
cnt++;
}
}
printf("%d\n",cnt);
}
}
오답 ( 시간초과 )
#include <stdio.h>
#include <string.h>
int main()
{
int circle;
scanf("%d",&circle);
int N,M,number[10001],cnt=0;
char ans[100]={0};
for (int i=2;i<=10000;i++){
number[i]=i;
}
for (int i=2;i<=10000;i++){
if(number[i]==0){
continue;
}
for(int j=i+i;j<=10000;j+=i){
number[j]=0;
}
}
//여기까지가 소수 확인.
for(int i=0;i<circle;i++){
scanf("%d",&N);
int a=0;
for(int i=2;i<=N;i++){
if(number[i]!=0){
for(int j=i;j<=N;j++){
if(number[j]!=0){
if (i+j==N){
ans[0]=number[i];
ans[1]=number[j];
}
}
}
}
}
printf("%d %d",ans[0],ans[1]);
}
}
#include <stdio.h>
#include <string.h>
int main()
{
int min,max,tmp,num,arr[1001]={0},index;
scanf("%d",&num);
for (int i=0;i<num;i++){
scanf("%d",&arr[i]);
}
for (int i=0;i<num;i++){
for(int j=i;j<num;j++){
if(arr[i]<arr[j]){
tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
}
}
for(int i=num-1;i>=0;i--){
printf("%d\n",arr[i]);
}
}
#include <stdio.h>
#include <string.h>
int main()
{
int x,y,w,h,low,arr[4]={0};
scanf("%d %d %d %d",&x,&y,&w,&h);
arr[0]=w-x,arr[1]=x,arr[2]=h-y,arr[3]=y;
low=arr[0];
for (int i=1;i<4;i++){
if(arr[i]<low){
low=arr[i];
}
}
printf("%d",low);
}
#include <stdio.h>
#include <string.h>
int main()
{
int x,y,arr_x[4]={0},arr_y[4]={0};
for(int i=0;i<3;i++){
scanf("%d %d",&arr_x[i],&arr_y[i]);}
if(arr_x[0]==arr_x[1]){
x=arr_x[2];
}
else if(arr_x[1]==arr_x[2]){
x=arr_x[0];
}
else{
x=arr_x[1];
}
if(arr_y[0]==arr_y[1]){
y=arr_y[2];
}
else if(arr_y[1]==arr_y[2]){
y=arr_y[0];
}
else{
y=arr_y[1];
}
printf("%d %d",x,y);
}
#include <stdio.h>
#include <string.h>
int main()
{
while(1){
int a[3]={0},biggest,index,s[2]={0};
scanf("%d %d %d",&a[0],&a[1],&a[2]);
if (a[0]==0 && a[1]==0 && a[2]==0){
break;
}
biggest=a[0];
for (int i=0;i<3;i++){
if(biggest<=a[i]){
biggest=a[i];
index=i;
}
}
int c=0;
for (int i=0;i<3;i++){
if(index!=i){
s[c]=a[i];
c++;
}
}
if(s[0]*s[0]+s[1]*s[1]==biggest*biggest){
printf("right\n");
}
else{
printf("wrong\n");
}
}
}
#include <stdio.h>
#include <string.h>
int main()
{
int input;
double re1,re2;
scanf("%d",&input);
printf("%.6lf\n%.6lf",(double)input*input*3.14159265359,(double)input*input*2);
}
택시기하학이 뭔지 모르겠다. 그냥 r*r*2
라고만 알아둘께..