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

求100内素数

热度:237   发布时间:2007-11-24 11:38:30.0
5楼的更正一下,有点问题
#include<math.h>
#include<stdio.h>
int prime(int n)    //判断素数
{
    int i;
    if(n%2==0)    //如果N是偶数
        return 0;
    double k=sqrt(n+1);
    for(i=3;i<k;i+=2)//i+=2是因为没必要考虑能整除偶数,前面没已经排除了
        if(n%i==0)
            return 0;
    return 1;
}
int  main()
{
int i,j,k=1,a[100]={0},m;
a[0]=2;
for(i=3;i<100;i+=2)
{   
  if(prime(i))
   a[k++]=i;
}
for(i=0;a!=0;i++)
        printf("%d\t",a);
printf("\n");
return 0;
}
----------------解决方案--------------------------------------------------------
晕哦,代码好像被人改了一下一样


#include<math.h>
#include<stdio.h>
int prime(int n)    //判断素数
{
    int i;
    if(n%2==0)    //如果N是偶数
        return 0;
    double k=sqrt(n+1);
    for(i=3;i<k;i+=2)//i+=2是因为没必要考虑能整除偶数,前面没已经排除了
        if(n%i==0)
            return 0;
    return 1;
}
int  main()
{
int i,j,k=1,a[100]={2},m;
for(i=3;i<100;i+=2)
{   
  if(prime(i))
   a[k++]=i;
}
for(i=0;a[i]!=0;i++)
        printf("%d\t",a[i]);
printf("\n");
return 0;
}
----------------解决方案--------------------------------------------------------
上面的代码``有人运行过吗````好恐怖啊````
----------------解决方案--------------------------------------------------------
算法还可以```但是却把数组没掌握好啊```要小改一下哦 ``

for(i=0;a!=0;i++)
        printf("%d\t",a);

改:

a[k]=0;

for(i=0;a[i]!=0;i++)
        printf("%d\t",a[i]);
----------------解决方案--------------------------------------------------------
到底是怎么回事啊,我输入的时A[I],他怎么给我改成A了:@
----------------解决方案--------------------------------------------------------
#include<math.h>
#include<stdio.h>
int prime(int n)    //判断素数
{
    int i;
    if(n%2==0)    //如果N是偶数
        return 0;
    double k=sqrt(n+1);
    for(i=3;i<k;i+=2)//i+=2是因为没必要考虑能整除偶数,前面没已经排除了
        if(n%i==0)
            return 0;
    return 1;
}
int  main()
{
int i,j,k=1,a[100]={2},m;
for(i=3;i<100;i+=2)
{   
  if(prime(i))
   a[k++]=i;
}
for(i=0;a[i]!=0;i++)
        printf("%d\t",a[i]);
printf("\n");
return 0;
}

晕,我再发一次试试
----------------解决方案--------------------------------------------------------
我算是服了:@
----------------解决方案--------------------------------------------------------
回复 14# 的帖子
不用加那一句,我初始化的时候,数组后面已经全部是0了
----------------解决方案--------------------------------------------------------
程序代码:

#include<math.h>
#include<stdio.h>
int prime(int n)    //判断素数
{
    int i;
    if(n%2==0)    //如果N是偶数
        return 0;
    double k=sqrt(n+1);
    for(i=3;i<k;i+=2)//i+=2是因为没必要考虑能整除偶数,前面没已经排除了
        if(n%i==0)
            return 0;
    return 1;
}
int  main()
{
int i,j,k=1,a[100]={2},m;
for(i=3;i<100;i+=2)
{   
  if(prime(i))
   a[k++]=i;
}
for(i=0;a[i]!=0;i++)
        printf("%d\t",a[i]);
printf("\n");
return 0;
}

----------------解决方案--------------------------------------------------------
程序代码:

#include<math.h>
#include<stdio.h>
int prime(int n)    //判断素数
{
    int i;
    if(n%2==0)    //如果N是偶数
        return 0;
    double k=sqrt(n+1);
    for(i=3;i<k;i+=2)//i+=2是因为没必要考虑能整除偶数,前面没已经排除了
        if(n%i==0)
            return 0;
  return 1;
}
int  main()
{
int i,j,k=1,a[100]={2},m;
for(i=3;i<100;i+=2)
{   
  if(prime(i))
   a[k++]=i;
}
for(i=0;a[i]!=0;i++)
        printf("%d\t",a[i]);
printf("\n");
return 0;
}


再发一下
----------------解决方案--------------------------------------------------------
  相关解决方案