include
//主函数
//判断函数,返回值
//输出数组
int main( void ){
int num[100] = {2};
int i = 3;//起始数
int count =1;//计数器
while( count < 100 ){
if( IsPrime( i , num , count ) ){
num[count++] = i;
}
i++;
}
//输出数组
int a ;
for(a=0;a<100;a++){
printf("%d\t", num[count] );
if( (a+1)%5==0 ){
printf("\n");
}
}
return 0;
}
int IsPrime( int i , int num[ ] , int count){
int ret = 1;
int a;
for( a=0 ; a<count ; a++ ){
if( i%num[a] == 0 ){
ret = 0 ;
break;
}
}
return ret;
}
#include
int main(void)
{
int prime[ 100 ]={2};
int count=1;
int i=3;
while (count< 100 ){
if( isprime(i,prime,count)){
prime[count++]=i;
}
i++;
}
for(i=0;i<100;i++){
printf("%d",prime[i]);
if( (i+1)%5 )printf("\t");
else printf("\n");
}
return 0;
}
int isprime(int x,int knownprimes[],int y){
int ret=1;
int i;
for(i=0;i < y;i++){
if(x% knownprimes[i]==0){
ret=0;
break;
}
}
return ret;
}
结果
# include<stdio.h>
//主函数
//判断函数,返回值
//输出数组
int main( void ){
int IsPrime( int i , int num[ ] , int count);
int num[100] = {2};
int i = 3;//起始数
int count =1;//计数器
while( count < 100 ){
if( IsPrime( i , num , count ) ){
num[count++] = i;
}
i++;
}
//输出数组
int a ;
for(a=0;a<100;a++){
printf("%d\t", num[a]); // 修改num[count]
if( (a+1)%5==0 ){
printf("\n");
}
}
return 0;
}
int IsPrime( int i , int num[] , int count){
int ret = 1;
int a;
for( a=0 ; a<count ; a++ ){
if( i%num[a] == 0 ){
ret = 0 ;
break;
}
}
return ret;
}
不好意思,我自己发现哪里错了,输出部分的数组输出应该是num[a]而不是num[count]。太粗心了