為什麼一直WA(line21) ....... A007 欺負我拉 Q口Q
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
int main()
{
unsigned int t,n,k=1;
ss:while(EOF != scanf("%d",&n))
{
for ( t = 2 ; t <= ceil(sqrt(n)) ; t++ )
{
if ( n % t == 0)
{
printf("非質數\n");
goto ss;
}
}
printf("質數\n");
}
return 0;
}
為什麼一直WA(line21) ....... A007 欺負我拉 Q口Q
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
int main()
{
unsigned int t,n,k=1;
ss:while(EOF != scanf("%d",&n))
{
for ( t = 2 ; t <= ceil(sqrt(n)) ; t++ )
{
if ( n % t == 0)
{
printf("非質數\n");
goto ss;
}
}
printf("質數\n");
}
return 0;
}
我好奇像是 9, 36 , 64 這一類的… n^2 的你會對嗎?
符點數應該是會有誤差產生吧…
為什麼一直WA(line21) ....... A007 欺負我拉 Q口Q
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
int main()
{
unsigned int t,n,k=1;
ss:while(EOF != scanf("%d",&n))
{
for ( t = 2 ; t <= ceil(sqrt(n)) ; t++ )
{
if ( n % t == 0)
{
printf("非質數\n");
goto ss;
}
}
printf("質數\n");
}
return 0;
}
:我好奇像是 9, 36 , 64 這一類的… n^2 的你會對嗎?
:符點數應該是會有誤差產生吧…
當然會對阿 ~
知道 ceil( ) 做什麼用的嗎?
為什麼一直WA(line21) ....... A007 欺負我拉 Q口Q
#include <iostream.h>#include <math.h>#include <stdlib.h>
int main(){ unsigned int t,n,k=1; ss:while(EOF != scanf("%d",&n)) { for ( t = 2 ; t <= ceil(sqrt(n)) ; t++ ) { if ( n % t == 0) { printf("非質數\n"); goto ss; } } printf("質數\n"); } return 0; }
:我好奇像是 9, 36 , 64 這一類的… n^2 的你會對嗎?
:符點數應該是會有誤差產生吧…
當然會對阿 ~
知道 ceil( ) 做什麼用的嗎?
sqrt(2)=1.414
ceil(1.414)=2
2%2=0
printf出非質數!!
也就是說 ceil()是多餘的 拿掉應該就可以了