c语言求素数并存到数组,c语言将100以内的素数存放到一个数组中

本文目录一览:

C语言 求出 2 到 m 之间 ( 含 m,m

#include stdio.h

#include stdlib.h

int main()

{  

 int m,i,j,k=0,flag=1;  

 scanf(“%d”,m);  

 

 int a[1000];  

 for(i=2; i=m; i++) //其实2不需要特殊处理的,就从2开始 

 {       

  flag = 1;//每轮的flag都需要重新赋值的

  for(j=2; j*j=i; j++)    

  {          

   if(i%j==0)      

   {              

    flag=0;//非质数,直接退出

    break;        

   }

        }

  if(flag)  

  {

   //输出质数

            a[k]=i; 

   printf(“%4d”,a[k]); 

   k=k+1;

        } 

 } 

 

 printf(“\n%d\n”,k);   

 

 return 0;

}

printf(”    2″);

就不要放到循环里了,否则会循环输出的,不符合你的最终要求!

用C语言把2-100之内的素数放到数组里,并且输出来。

#include stdio.h

#include stdlib.h

#include math.h

#define n 100

int main()

{

int a[n+1]={0};

int i,j;

for(i=2;i=sqrt(n);i++){

if(a[i]==0){

for(j=2*i;j=n;j+=i){

a[j]=1;

}

}

}

for(i=2;i=n;i++){

if(a[i]==0)

printf(“%d “,i);

}

return 0;

}

输出100以内的素数,思路:

假如自然数N不是素数,则除1和其本身之外,必然至少存在两个数A和B,使得A*B=N,则A和B中必有一个大于或者等于sqrt(N),另一个小于或者等于sqrt(N)。下面是粗略证明如果N是合数,则必有一个小于或者等于根号N的素因子.因为任何合数都可表示为两个或者更多个素数之积。

假如N是合数且其素因子都大于根号N,那么将产生矛盾:根号N*根号NN。所以合数必有(至少)一个不大于根号N的素因子。

n的不大于根号的因子=sqrt(n);n-1的不大于根号的因子=sqrt(n-1),显然sqrt(n-1)sqrt(n);所以2~n内的自然数的因子范围是2~sqrt(n);换句话说2~sqrt(n)的倍数覆盖了了2~n范围内的合数。

扩展资料:

数组使用规则:

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

参考资料:

百度百科-数组

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

素数,于是100以内的素数应该少于50个,我们就以a[50]来存放这些素数吧.还有1不是素数。

main()

{

int a[50];

int i=5,j=3,m=1;

a[0]=2;a[1]=3;

for(i=5;i100;i=i+2)

loop1: for(j=3;ji;j++)

loop2:

if(i%j==0)

else

{if(j==i-1)

a[++m]=i;

else

}

/*来验证一下是否正确*/

printf(“%d\n”,m);/*看看有多少个素数*/

for(i=0;i=m;i++)

printf(“%d\t”,a[i]);

}

c语言 编写一个函数 搜索出一组数中的素数 并将它保存到另一个数组中

//这个给你参考

#includestdio.h

#includestdlib.h

#includemath.h

#includeassert.h

#includememory.h

bool is_prime(unsigned int n)

{

if(n2)

{

return false;

}

unsigned int ncnt=(unsigned int)sqrt(n*1.0);

for(unsigned int i=2;i=ncnt;i++)

{

if(n%i==0)

return false;

}

return true;}

unsigned int search_prime(int* src,int* res,int n)

{

// assert(src!=NULLres!=NULL); //

memset(res,0,sizeof(int)*n);

unsigned int ncnt=0;

for(int i=0;in;i++)

{

if(is_prime(*src))

{

*res++=*src;

++ncnt;

}

src++;

}

return ncnt;

}

int main()

{

int test[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

int res[20]={0};

int ncnt=search_prime(test,res,20);

printf(“%d\n”,ncnt);

for(int i=0;incnt;i++)

{

printf(“%d “,res[i]);

}

printf(“\n”);

return 0;}

C语言求素数数组

#include stdlib.h

#include stdio.h

void readwriteDat();

void num(int m, int k, int *xx)

{

int n=0,i,b;

while(m++)/*死循环*/

{

for(i=2;im;i++)

{

if(!(m%i))

{b=0;break;}

else b=1;

}

if(b) xx[n++]=m;/*if(n==k-1) break;

}

}

int main()

{

int m, n, xx[1000];

printf(“\nPlease enter two integers:”);

scanf(“%d%d”, m, n);

num(m, n, xx);

for (m=0; mn; m++)

printf(“%d “, xx[m]);

printf(“\n”);

readwriteDat();

system(“pause”);

return 0;

}

void readwriteDat()

{

int m, n, xx[1000], i;

FILE *rf, *wf;

rf = fopen(“in.dat”, “r”);

wf = fopen(“out.dat”, “w”);

for (i=0; i10; i++)

{

fscanf(rf, “%d %d”, m, n);

num(m, n, xx);

for (m=0; mn; m++)

fprintf(wf, “%d “, xx[m]);

fprintf(wf, “\n”);

}

fclose(rf);

fclose(wf);

}

求一个大于m且仅靠m的k个素数存入数组xx传回,不知哪里出错,除了num函数,其他都是题目给的

C语言编程,从3开始,求出最小的10个素数,并保存到数组中

代码如下:

#includestdio.h

int main() {

int num[10] = { 2 }, idx = 1;

for (int i = 3; idx != 10; i++) {

int flag = 1;

for (int j = 0; j*j = i  j  idx; j++) {

if (i%num[j] == 0) {

flag = 0;

break;

}

}

if (flag) num[idx++] = i;

}

for (int i = 0; i  10; i++)

printf(“%d “, num[i]);

printf(“\n”);

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/239431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:16
下一篇 2024-12-12 12:16

相关推荐

  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • 用不同的方法求素数

    素数是指只能被1和自身整除的正整数,如2、3、5、7、11、13等。素数在密码学、计算机科学、数学、物理等领域都有着广泛的应用。本文将介绍几种常见的求素数的方法,包括暴力枚举法、埃…

    编程 2025-04-29
  • Python返回数组:一次性搞定多种数据类型

    Python是一种多用途的高级编程语言,具有高效性和易读性的特点,因此被广泛应用于数据科学、机器学习、Web开发、游戏开发等各个领域。其中,Python返回数组也是一项非常强大的功…

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python去掉数组的中括号

    在Python中,被中括号包裹的数据结构是列表,列表是Python中非常常见的数据类型之一。但是,有些时候我们需要将列表展开成一维的数组,并且去掉中括号。本文将为大家详细介绍如何用…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • Python操作数组

    本文将从多个方面详细介绍如何使用Python操作5个数组成的列表。 一、数组的定义 数组是一种用于存储相同类型数据的数据结构。Python中的数组是通过列表来实现的,列表中可以存放…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29

发表回复

登录后才能评论