注册 登录
编程论坛 C++教室

求教 源程序代码分析 请帮忙给下面的源程序代码每段解释下作用 比如说#include <stdlib.h> 是头文件。 请帮忙解决下。谢了

suzq 发布于 2010-06-01 17:11, 414 次点击
请帮忙给下面的源程序代码每段解释下作用 比如说#include <stdlib.h>  是头文件。 请帮忙解决下。谢了
,急需。!!!!!


#include <stdlib.h>头文件
#include <stdio.h>

struct number
{
 int n;     //数
 int flag;  //标记,1为素数,0为非素数
};

void sushu(struct number num[])
{
 int n,i,j,k;
 printf("Please input a number: ");
 scanf("%d",&n);
 
 for(i=2;i<=n;i++)          //初始化,2到n
 {
  num[i-2].n=i;
  num[i-2].flag=1;
 }

 for(i=2;i<=n;i++)
 {
  for(j=2;(num[i-2].n*j)<=n;j++) //素数j倍的数不是素数
  {
   for(k=2;k<=n;k++)
   {
    if((num[i-2].n*j)==num[k-2].n)
     num[k-2].flag=0;
   }
  }
 }
 
 for(i=2;i<=n;i++)
 {
  if(num[i-2].flag)
   printf("%d ",num[i-2].n);//打印结果
 }
 printf("\n");
}

int main()
{
 struct number num[1000];

 sushu(num);

 return 0;
}
1 回复
#2
ciweitou1632010-06-01 18:13
程序代码:
//素数:指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。
#include <stdlib.h>//标准库头文件
#include <stdio.h>//标准输入输出头文件

struct number
{
    int n;     //
    int flag;  //标记,1为素数,0为非素数
};

void sushu(struct number num[])        //输出从2~N(自己输入的数)的所有素数
{
    int n,i,j,k;
    printf("Please input a number: ");
    scanf("%d",&n);

    for(i=2;i<=n;i++)          //初始化   2到n  都默认标记为素数
    {
        num[i-2].n=i;
        num[i-2].flag=1;
    }

    for(i=2;i<=n;i++)        
    {
        for(j=2;(num[i-2].n*j)<=n;j++)
        {
            for(k=2;k<=n;k++)
            {
                if((num[i-2].n*j)==num[k-2].n)                //一个素数j倍的数不是素数
                num[k-2].flag=0;
            }
        }
    }

    for(i=2;i<=n;i++)
    {
        if(num[i-2].flag)        
        printf("%d ",num[i-2].n);//打印素数
    }
    printf("\n");
}

int main()
{
    struct number num[1000];        //容量为1000的

    sushu(num);                //函数的调用                    

    return 0;
}
1