#11837: 奇妙的事件!! WA (line:156895)


HSUxMichael (IAmTotallyExhausted)

學校 : 臺北市立成功高級中學
編號 : 61983
來源 : [101.10.132.127]
最後登入時間 :
2020-10-11 12:31:31
a007. 判斷質數 | From: [180.217.156.134] | 發表日期 : 2017-03-24 21:20

這是我的程式碼,他只要小於sqrt(2147483647)都會印出「質數」

所以156895前的測資都大於sqrt(2147483627)

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

int main()
{
int prime[4800],i,i2,isP,t=0;
prime[0]=2;
for(i=3;i<sqrt(2147483647);i++){
isP=1;
for(i2=0;i2<=t;i2++){
if(i%prime[i2]==0){
isP=0;
break;
}
}
if(isP==1){
t++;
prime[t]=i;
}
}
int n;
while(~scanf("%d",&n)){
isP=1;
for(i=0;i<=t;i++){
if(n<prime[t]){
if(n==prime[i]){
isP=1;
break;
}
}
else{
if(n%prime[i]==0){
isP=0;
break;
}
}
}
if(isP==1){
printf("質數\n");
}
else{
printf("非質數\n");
}
}
return 0;
}

 
#11838: Re:奇妙的事件!! WA (line:156895)


HSUxMichael (IAmTotallyExhausted)

學校 : 臺北市立成功高級中學
編號 : 61983
來源 : [101.10.132.127]
最後登入時間 :
2020-10-11 12:31:31
a007. 判斷質數 | From: [180.217.156.134] | 發表日期 : 2017-03-24 21:39

這是我的程式碼,他只要小於sqrt(2147483647)都會印出「質數」

所以156895前的測資都大於sqrt(2147483627)

#include
#include
#include
using namespace std;

int main()
{
int prime[4800],i,i2,isP,t=0;
prime[0]=2;
for(i=3;i<sqrt(2147483647);i++){
isP=1;
for(i2=0;i2<=t;i2++){
if(i%prime[i2]==0){
isP=0;
break;
}
}
if(isP==1){
t++;
prime[t]=i;
}
}
int n;
while(~scanf("%d",&n)){
isP=1;
for(i=0;i<=t;i++){
if(n<prime[t]){
if(n==prime[i]){
isP=1;
break;
}
}
else{
if(n%prime[i]==0){
isP=0;
break;
}
}
}
if(isP==1){
printf("質數\n");
}
else{
printf("非質數\n");
}
}
return 0;
}


p.s. here's right code!!

#include<iostream>

#include<stdio.h>

#include<math.h>

using namespace std;

 

int main()

{

int prime[4800],i,i2,isP,t=0;

prime[0]=2;

for(i=3;i<sqrt(2147483647);i++){

isP=1;

for(i2=0;i2<=t;i2++){

if(i%prime[i2]==0){

isP=0;

break;

}

}

if(isP==1){

t++;

prime[t]=i;

}

}

int n;

while(~scanf("%d",&n)){

if(n<prime[t]){

isP=0;

}

else{

isP=1;

}

for(i=0;i<=t;i++){

if(n<prime[t]){

if(n==prime[i]){

isP=1;

break;

}

}

else{

if(n%prime[i]==0){

isP=0;

break;

}

}

}

if(isP==1){

printf("質數\n");

}

else{

printf("非質數\n");

}

  return 0;

}

 

 
ZeroJudge Forum