我用devC++開發
但是卻一直回傳逾時的訊息
希望有高手可以幫我看看
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
float a;
double s;
int k;
while((scanf("%f",&a))!=EOF)
{
s = sqrt(a);
k = (int)ceil(s);
for(int t=2;t<=k;t++)
{
if((int)a%t==0||(int)a%2==0)
{
if((int)a == 2){
printf("質數\n");
main();
}
else{
printf("非質數\n");
main();
}
}
else if(t==k)
{
printf("質數\n");
main();
}
}
}
return EXIT_SUCCESS;
}
我用devC++開發
但是卻一直回傳逾時的訊息
希望有高手可以幫我看看
#include
#include
using namespace std;
int main()
{
float a;
double s;
int k;
while((scanf("%f",&a))!=EOF)
{
s = sqrt(a);
k = (int)ceil(s);
for(int t=2;t<=k;t++)
{
if((int)a%t==0||(int)a%2==0)
{
if((int)a == 2){
printf("質數\n");
main();
}
else{
printf("非質數\n");
main();
}
}
else if(t==k)
{
printf("質數\n");
main();
}
}
}
return EXIT_SUCCESS;
}
我想你在 if 裡面的 main() 應該是 break 的意思吧
是"印出之後跳出"嗎 ?
我用devC++開發
但是卻一直回傳逾時的訊息
希望有高手可以幫我看看
#include
#include
using namespace std;
int main()
{
float a;
double s;
int k;
while((scanf("%f",&a))!=EOF)
{
s = sqrt(a);
k = (int)ceil(s);
for(int t=2;t<=k;t++)
{
if((int)a%t==0||(int)a%2==0)
{
if((int)a == 2){
printf("質數\n");
main();
}
else{
printf("非質數\n");
main();
}
}
else if(t==k)
{
printf("質數\n");
main();
}
}
}
return EXIT_SUCCESS;
}
我想你在 if 裡面的 main() 應該是 break 的意思吧
是"印出之後跳出"嗎 ?
作用很像但不是break
我是讓他印出之後重新進入main()
作用很像但不是break
我是讓他印出之後重新進入main()
重新進入main()?
那不就是無窮的遞迴嗎?(重新執行while那些.. 等到執行到main(); 又再繼續call ... 一直call...)
有嚴重的邏輯瑕疵 建議重寫..
作用很像但不是break
我是讓他印出之後重新進入main()
那應該是用 break; 代替呼叫 main() 哦
不用重寫啦
作用很像但不是break
我是讓他印出之後重新進入main()
那應該是用 break; 代替呼叫 main() 哦
不用重寫啦
噢 對唷= =
沒看清楚˙˙˙
他的寫法滿特別的 0.0
檢查質數其實.. 先判斷是否是2的倍數 改+=2
速度會是2倍快~