新手第一帖 求助各位大大
小弟初学C 今天遇一障碍怎么也想不通 还请各位大大耐心看完指点下题目是要求101-200之间的素数 算法是用这个数分别除2到这个数加1的平方根范围内的每一个数,如果能被整除,则表明此数不是素数,反之则是素数。
这是书上给的代码:
#include<stdio.h>
#include "math.h"
void main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=101;m<=200;m++)
{
k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{
leap=0;break;
}
if(leap)
{
printf("%-4d",m);h++;
if(h%10==0)
{
printf("\n");
}
}
leap=1;
}
printf("\nThe total is %d",h);
}
这是我自己写的代码 :
#include "stdafx.h"
#include "math.h"
#include "stdio.h"
void main()
{
int i,m,h=0;
double k;
for(m=101;m<=200;m++)
{
k=sqrt(m+1);
for(i=2;i<=k;i++){
if(m%i==0)
{
break;
}
else
printf("%d ",m);
h+=1;
break;
}
}
printf("\nThe total is %d",h);
}
为什么我自己写这个求出的不是素数而是奇数啊。。。。头痛一上午了。。。。