#8699: 我不懂耶


crazytim (天邊)

學校 : 臺北市立成功高級中學
編號 : 35518
來源 : [36.229.95.202]
最後登入時間 :
2023-06-26 22:46:23
a626. 6. Prime Directive -- HP CodeWars2007 | From: [111.240.22.232] | 發表日期 : 2014-03-08 23:17

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
using namespace std;

int main()
{
int p[500],i,j,t;
bool pk;
p[0]=2;
t=1;
for(i=3;i<1000;i=i+2)
{
pk=true;
for(j=0;j<t;j++)
if(i%p[j]==0)
{
pk=false;
break;
}
if(pk)
p[t++]=i;
}
int n,k;
while(scanf("%d",&n)!=EOF)
{
for(i=0;p[i]<=n;i++)
{
k=i+1;
printf("%10d",p[i]);
if(k%5==0)
printf("\n");
}
if(k%5!=0)
printf("\n");
}

  return 0;
}
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <math.h>
using namespace std;

int main()
{
int p[500],i,j,t;
bool pk;
p[0]=2;
t=1;
for(i=3;i<1000;i=i+2)
{
pk=true;
for(j=0;j<t;j++)
if(i%p[j]==0)
{
pk=false;
break;
}
if(pk)
p[t++]=i;
}
int n,k;
while(scanf("%d",&n)!=EOF)
{
for(i=0;p[i]<=n;i++)
{
k=i+1;
printf("%10d",p[i]);
if(k%5==0)
printf("\n");
}
if(k%5!=0)
printf("\n");
}

  return 0;
}
 
 WA (line:42)
答案不正確
您的答案為: 983       991       997      ...略 正確答案為: 983       991       997 
一開始一直沒發現紅色部分可能會形成無線迴圈~
因為我實際輸入997 998 999 1000都沒問題
沒有多的輸出
但丟到zj上就如上
有不該出現的輸出

 
我猜測是因為測資上的
997後一個p[]陣列元素的殘留值
跟我電腦執行時不同
我第一次遇到這樣的情況
供大家參考 
 
 
#8930: Re:我不懂耶


davidhsu (David)

學校 : 不指定學校
編號 : 12295
來源 : [36.237.202.120]
最後登入時間 :
2020-12-23 11:36:28
a626. 6. Prime Directive -- HP CodeWars2007 | From: [163.24.167.2] | 發表日期 : 2014-07-02 12:30

p[i]<=n  <== error

p[168]=997, p[169]=[0], p[170]=0....p[499]=0; 

 
ZeroJudge Forum