求助 求1到100的素数
#include<stdio.h>void main()
{
int j,find;
int prime(int m);
for(j=2;j<=100;j++)
{ find=prime(j);
if(find)
printf("%d\t",j);
}
}
/*函数的功能:判断一个数是否是素数;
函数参数:m;
返回值:有。
*/
int prime(int m)
{
int k,i;
for(i=2;i<m;i++)
{
k=m/i;
if(k==0)break;
}
if(i<m)
return 1;
else
return 0;
}为什么没有输出结果呢?
搜索更多相关的解决方案:
素数
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <math.h>
int spt( int n)
{ int a,i;
a=(int)sqrt(n); i=0;
if(n & 1)
for(i=3; i<=a; i+=2)
{
if(n%i== 0) break;
}
if (i<=a)
return 1;
else
return 0;
}
int main()
{
int number;
for(number=1;number<=100;number++)
{ if(spt(number)==0)
printf("是素数");
else
printf("bu shisushu");
}
return 0;
}
----------------解决方案--------------------------------------------------------
LZ今年几何??那里k=m/i是得到取出因子i后的值
----------------解决方案--------------------------------------------------------
我是菜鸟,不好意思
我刚学C,也许有些问题显得很幼稚 ----------------解决方案--------------------------------------------------------
日月凡尘
我想知道我写的那个程序哪里出了问题? ----------------解决方案--------------------------------------------------------
你得素数判断就出问题乐
----------------解决方案--------------------------------------------------------
高人指点一下啊
我就是不知道怎么才能输出结果? ----------------解决方案--------------------------------------------------------
k=m/i;应该改为k=m%i;
if(i<m)这个条件应改为i==m
程序如下,
#include<stdio.h>
void main()
{
int j,find;
int prime(int );
for(j=2;j<=100;j++)
{ find=prime(j);
if(find)
printf("%d\t",j);
}
}
/*函数的功能:判断一个数是否是素数;
函数参数:m;
返回值:有。
*/
int prime(int m)
{
int k,i;
for(i=2;i<m;i++)
{
k=m%i;
if(k==0)break;
}
if(i==m)
return 1;
else
return 0;
}
----------------解决方案--------------------------------------------------------
晓得了
[bo]以下是引用 [un]中学者[/un] 在 2008-4-22 22:15 的发言:[/bo]
你得素数判断就出问题乐
你得素数判断就出问题乐
哦,原来如此啊,确实是我的疏忽,应该是 k=m%i吧!
----------------解决方案--------------------------------------------------------
而且后面的return当中也有错
#include<stdio.h>void main()
{
int j,find;
int prime(int m);
for(j=2;j<=100;j++)
{ find=prime(j);
if(find)
printf("%d\t",j);
}
}
/*函数的功能:判断一个数是否是素数;
函数参数:m;
返回值:有。
*/
int prime(int m)
{
int k,i;
for(i=2;i<m;i++)
{
k=m%i;
if(k==0)break;
}
if(i<m)
return 0;
else
return 1;
}
----------------解决方案--------------------------------------------------------