C语言编写程序,找出100以内的所有素数,存放在一位数组中,并将所找到的素数按每行10个数的形式输出。

2024-10-30 07:10:58
推荐回答(2个)
回答1:

c#参考:
/*质(素)数推算*/
List 质数集 = new List() { 2 }; bool 判 = true; int 范围 = 999;
string 位数 = ""; foreach (int a in Enumerable.Range(0, 范围.ToString().Length)) 位数 += "0";
foreach (int 自然数 in Enumerable.Range(2, 范围))
{
foreach (int 除数 in Enumerable.Range(2, 范围))
{
if (自然数 > 除数)
if (自然数 % 除数 == 0)
{
判 = true;
break;
}
else 判 = false;
}
if (!判)
{
质数集.Add(自然数);
判 = true;
}
}
//foreach (int 质数 in 质数集)
// Console.WriteLine(质数);
foreach (int 数 in Enumerable.Range(1, 质数集.Count / 8).Select(十 => 十 *= 8))
Console.WriteLine("{0} {1} {2} {3} {4} {5} {6} {7}", 质数集[数 - 8].ToString(位数), 质数集[数 - 7].ToString(位数), 质数集[数 - 6].ToString(位数), 质数集[数 - 5].ToString(位数), 质数集[数 - 4].ToString(位数), 质数集[数 - 3].ToString(位数), 质数集[数 - 2].ToString(位数), 质数集[数 - 1].ToString(位数));

回答2:

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
bool prime(int n){
int i;
if(n>2 && !(n&1) || n<2) return false;
for(i=3; i*i<=n;i+=2)
if(!(n%i)) return false;
return true;
}
void main(void){
int x[40]={2,},i,j,k;
for(j=1,i=3;i<100;i+=2)
if(prime(i)) x[j++]=i;
for(k=i=0;i printf(++k%10 ? "%-3d" : "%-3d\n",x[i]);
if(k%10) printf("\n");
}