判断m是否为素数,当m为素数时返回1,否则返回0。
为什么这个运行结果总为0?
#include<stdio.h>
#include<math.h>
int main()
{
int prime(int);
int m,n,i,count=0;
printf("请输入两个正整数:");
scanf("%d,%d",&m,&n);
for(i=m;i<=n;i++)
{
if (prime(i)==1)
{
count++;
}
}
printf("这两个正整数之间的素数个数为:%d\n",count);
return 0;
}
int prime(int a)
{
int i;
if(a==1)
return 1;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)
return 0;
else
return 1;
}
1、打开visual studio软件,进入菜单“文件”->新建->新建项目。选择windows窗体程序,项目名为“SuShu”。
2、在窗体上添加控件:lable控件,text值为“输入一个数,判断是否是素数”;一个textbox控件(tb_inputvalue),用来输入要判断的素数。
3、素数设计算法。
4、素数设计算法:取消检测区间,提高程序效率。我们可以只判断2到n/2之间的数,就可以知道他是不是素数了。
5、获取前100之间的所有素数:从2到一百挨个判断,是素数就记录下来。
6、判断一个数是不是素数:if (sushu(Int32.Parse(tb_inputvalue.Text))) {MessageBox.Show(tb_inputvalue.Text + " 是素数");} else { MessageBox.Show(tb_inputvalue.Text + " 不是素数"); }。
7、编译运行程序,我们输入67,检测67是不是素数。根据执行结果是素数和实际符合。
#include<stdio.h>
#include<math.h>
int main()
{
int prime(int a);
int m,n,i,count=0;
printf("请输入两个正整数:");
scanf("%d,%d",&m,&n);
for(i=m;i<=n;i++)
{
if (prime(i)==1)
{
count++;
}
}
printf("这两个正整数之间的素数个数为:%d\n",count);
return 0;
}
int prime(int a)
{
int i;
if(a==1)
return 0;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)
return 0;
return 1;
}
亲,为啥子明明一样的我的win8系统下就一直是0呢?
你把代码复制过去再运行。原来的程序作了修改了。
还有,你输入的逗号,怎么那么“胖”呢,该减减肥了,要用英文的逗号。
为什么呢?
追答你这样写只要是奇数就返回1了