100以内素数问题
int main(){
int m=2,i,flag,r,code,a=0,count=0;
while(m<=100)
{
flag=1;
for(i=2;i<m;i++)
{
r=m%i;
if(r==0)
{
flag=0;
count=count+1;
break;
}
}
if(flag==1)
printf("%d是素数!\n",m);
code=m;
a=a+1;
if(flag==0)
printf("%d不是素数!\n",m);
m=m+1;
}
for(a=0;a<=count-1;a++)
{
printf("%d ",code);
}
}
我原意是把检索到的素数全部存进那个数组里面,然后打印出来,结果变成这样 有人回答一下我问题吗 本帖最后由 TimCheng 于 2016-10-7 14:15 编辑
我也是初学者,写了一个效率不高的代码,Array存储所有的素数
#include <stdio.h>
void main()
{
printf("This program will check the prime number between 2-100\n\n");
int Number=2, Count=0, Array, sign = 0;
printf("Print prime number between 2-100\n");
//When Number == 2
if(Number == 2)
{
Array = Number;
printf("%d ",Number);
Number ++;
}
//When Number != 2
for(;Number<=100;Number++)
{
sign = 0;
for(int i=2;i<Number;i++)
{
if(Number%i == 0)
{
sign = 1;
i = Number;
}
}
if(sign == 0)
{
Array = Number;
printf("%d ",Number);
}
}
//Print Array
printf("\n\nNow Print Array:\n");
for(int i=0;i<Count;i++)
{
printf("%d ",Array);
}
//Stop Here
getchar();
} 倒数第二个if后面少了括号,导致你将2-100所有的m都放入了数组中,,( ω )
页:
[1]