用C语言输出1000以内的全部素数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言输出1000以内的全部素数相关的知识,希望对你有一定的参考价值。

如下图所示:

    C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

    二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准

参考技术A #include <stdio.h>
#include <math.h>
void main()

int n=0, i, j,w,k;
for(i=2;i<=1000; i++)

w=1;
k=sqrt(i);
for (j=2; j<=k; j++)
 if (i%j==0) w=0;break;
if (w)
 
 ++n;
 if (n%10==0) printf("%d\\n",i);
 else printf("%d\\t",i);


printf("\\n");

参考技术B

素数的判断:除了1和它本身以外不再有其他的因数。

此程序可按照以下流程:

    1、主函数中进行循环,从2到1000

    2、如果当前循环的数是素数,就将其输出

判断一个数num是否是素数,可按照以下流程:

    1、循环,从2到num-1

    2、如果当前循环的数能被num整除,则num不是素数

    3、没有num能整除的数,表明num是素数

代码如下:

#include <stdio.h>

int isPrime(int num);

int main()

int i;

for (i = 2; i <= 1000; i++)
if (isPrime(i))
printf("%d ", i);

return 0;


int isPrime(int num)

int i;

for (i = 2; i < num; i++)
if (num % i == 0)
return 0;

return 1;

参考技术C #include <stdio.h>
int main()

    int i,j;
    for(i=2;i<1000;i++)
    
        for(j=2;j*j<=i;j++)
            if(i%j==0)
                break;
        if(j*j>i)
            printf("%d ",i);
    

参考技术D ==
#include<stdio.h>
int main()

int i;
for (i = 2; i <= 1000; i++)

if (i % 2== 0)
continue;
else
printf("%d\t", i);


祝你愉快!

用c语言怎样编写n个数以内的完全数的程序

完全数是指所有真因子之和等于该数本身的正整数。可以使用以下C语言代码来找出小于等于n(n为正整数)的完全数:

```c
#include <stdio.h>

int main()
int n, i, j, sum;

printf("请输入一个正整数n:");
scanf("%d", &n);

for (i = 1; i <= n; ++i)
sum = 0;
for (j = 1; j <= i / 2; ++j)
if (i % j == 0)
sum += j;


if (sum == i)
printf("%d\n", i);



return 0;

```

解释如下:

1. 首先,定义变量n、i、j和sum。
2. 要求用户输入n。
3. 使用两个嵌套的循环来遍历从1到n的每个数字。
4. 内部循环计算数字i的所有真因子之和。
5. 如果该总和等于数字i本身,则输出该数字,即它是一个完全数。
6. 最后返回0结束程序。

注意,此代码中包含了一个优化,即内部循环只需要遍历1到i的一半,因为大于i的一半的因子已经在之前被计算过了。
参考技术A #include<stdio.h>
int main()

int n;
scanf("%d",&n);
int i,j;
int sum=0;
for(i=1;i<=n;++i)

for(j=2;j<=i/2;++j)

if(i%j==0&&i/j!=i)
sum+=i/j;

if(sum==i)
printf("%d\n",i);
sum=1;

return 0;
参考技术B #include <stdio.h>
#include <math.h>

int main()

int a,b,c,sum=0;
scanf("%d",&a);
for(b=1;b<=a;b++)

sum = 0;
for(c=1;c<b;c++)

if(b%c==0)
sum=sum+c;
else
continue;

if(sum==b)
printf("%d\n",b);

return 0;
追问

我用linux怎嘛运行不出结果呀??

追答

windows vc6.0运行正常
linux下直接在终端编译运行的嘛?

追问

en 在终端运行不出来怎嘛办呀

本回答被提问者采纳

以上是关于用C语言输出1000以内的全部素数的主要内容,如果未能解决你的问题,请参考以下文章

编程找出所有三位回文素数 用c语言

用c语言求1000以内的素数(素数是只能被1和它本身整除的数)

c语言求1000以内的素数(素数是只能被1和它本身整除的数)

c语言 指定范围内的回文素数,题目如下,要求1S内完成的

c语言用fun函数求n以内的素数,求n=20的值?

c语言求1-1000素数的算法问题