C语言:求100以内的素数,用数组完成此题。

大神在哪里!!!急求!!

#include <stdio.h>

int main()

{

 int i;

 int a[100],b[100];

 int count=0;

 for(i=1;i<=100;i++)

 {

  int Cnt=0;

  a[i-1]=i;

  for(int j=1;j<=i;j++)

  { 

   if(a[i-1]%j==0)

    Cnt++;

  }

  if(Cnt == 2)

  {

   b[count]=a[i-1];

   count++;

  }

  

 }

    printf("100以内总共有%d个素数,分别如下:\n",count);

 for(i=0;i<count;i++)

 {

  printf("%d\t",b[i]);

 }

 printf("\n");

 return 0;

}

说明:刚刚在VC6.0下现写的,附图片

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-05-27
#include <stdio.h>
 
// 是否是素数 
bool is_prime(int n)
{
    if(n < 2)
    {
        return false;
    }
    for (int i=2;i*i<=n;i++)
    {
        if(n % i == 0)
        {
            return false;
        }
    }
    return true;
}
int main()
{
    int suShu[100];
    // 初始化
    memset(&suShu, 0, sizeof(int) * 100);
    
    int nCount = 0;
    for (int i = 0; i <= 100; i++)
    {
        // 如果是素数,则打印
        if (is_prime(i))
        {
            suShu[nCount++] = i;
        }
    }
    
    // 输出该素数数组
    for (int i = 0; i < nCount; i++)
    {
        printf("%d ", suShu[i]);
    }
    return 0;
}

欢迎采纳

追问

用VC6.0编译这个程序有问题?能不能看下问题在哪儿。。

追答

加上头文件#include

本回答被提问者采纳
第2个回答  2014-05-27
#include <stdio.h>
#define MAX 100
int PrimeNum( int i ) //判断函数
{
int j;
for( j = 2; j < i; j++ )
{
if( i % j == 0 )
return 0;
}
return 1;
}
int main( )
{
int drr[MAX] = { 0 };
int i;
int j=0;
for( i = 2; i < MAX; i++ ) // 循环判断
{
int flag = 0;
flag = PrimeNum( i );
if( flag )
{
drr[j++] = i;
}
}
for( i = 0; i < j; i++ ) // 输出
{
printf("%d,",drr[i] );
}
getch();
return 0;
}本回答被网友采纳
第3个回答  2014-05-27
http://blog.csdn.net/chuchus/article/details/20691769
这是我博客里面的文章。最高效的批量素数判定。
相似回答