我的程序有什么问题?求素数
/* Note:Your choice is C IDE */#include "stdio.h"
main()
{
int m,n,k,a;
scanf("%d",&m);
k=sqrt(m);
for(n=2;n<=k;++n)
{if(m%n==0){a=1;break;}
else a=0;}
if(a=1) printf("NO");
if(a=0) printf("YES");
}
搜索更多相关的解决方案:
素数
----------------解决方案--------------------------------------------------------
/* Note:Your choice is C IDE */
#include "math.h"
main()
{
int m,n,k,a;
scanf("%d",&m);
k=sqrt(m);
for(n=2;n<=k;++n)
{if(m%n==0){a=1;break;}
else a=0;}
if(a==1) printf("NO");
if(a==0) printf("YES");
}
----------------解决方案--------------------------------------------------------
以下是引用alonefire在2006-2-23 14:02:00的发言:
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int m,n,k,a;
scanf("%d",&m);
k=sqrt(m);//我不太知道 sqrt() 函数 的结果 带不带小数.反正没用.因为程序小.不会太占地方的,而且 思路清晰//
for(n=2;n<=k;++n)//我用 ++n 没试你的对错 应该是错的吧 //
{if(m%n==0){a=1;break;}//这里的 {} 完全没用 我指的是 fi 前面的 和 a=0后面的 //
else a=0;}
if(a=1) printf("NO");//这不应该是 a=1 吧 应该是 a==1//
if(a=0) printf("YES");
}
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int m,n,k,a;
scanf("%d",&m);
k=sqrt(m);//我不太知道 sqrt() 函数 的结果 带不带小数.反正没用.因为程序小.不会太占地方的,而且 思路清晰//
for(n=2;n<=k;++n)//我用 ++n 没试你的对错 应该是错的吧 //
{if(m%n==0){a=1;break;}//这里的 {} 完全没用 我指的是 fi 前面的 和 a=0后面的 //
else a=0;}
if(a=1) printf("NO");//这不应该是 a=1 吧 应该是 a==1//
if(a=0) printf("YES");
}
错误百出.太马虎了你
main()
{
int m,n,k,a;
scanf("%d",&m);
for(n=2;n<m;n++)
if(m%n==0){a=1;break;}
else a=0;
if(a==1) printf("NO");
else printf("YES");
getch();
}
去试试 我用的是 WINTC
[此贴子已经被作者于2006-2-23 14:20:32编辑过]
----------------解决方案--------------------------------------------------------
2楼的对了
改了个include就好了
----------------解决方案--------------------------------------------------------
不好意思 本人初学 多多包涵
----------------解决方案--------------------------------------------------------
2楼的回答基本正确了,但是我觉得还存在一个问题。
变量a没有初始值,如果m输入的数字不对,则会出现错误。
----------------解决方案--------------------------------------------------------
以下是引用summerpopoha在2006-2-23 14:08:00的发言:
/* Note:Your choice is C IDE */
#include "math.h"
main()
{
int m,n,k,a;
scanf("%d",&m);
k=sqrt(m);
for(n=2;n<=k;++n)
{if(m%n==0){a=1;break;}
else a=0;}
if(a==1) printf("NO");
if(a==0) printf("YES");
}
给a赋个初值0,那个else就不用了 /* Note:Your choice is C IDE */
#include "math.h"
main()
{
int m,n,k,a;
scanf("%d",&m);
k=sqrt(m);
for(n=2;n<=k;++n)
{if(m%n==0){a=1;break;}
else a=0;}
if(a==1) printf("NO");
if(a==0) printf("YES");
}
----------------解决方案--------------------------------------------------------