当前位置: 代码迷 >> C语言 >> 求助 求1到100的素数
  详细解决方案

求助 求1到100的素数

热度:249   发布时间:2008-04-22 21:59:44.0
求助 求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;
}
----------------解决方案--------------------------------------------------------
  相关解决方案