ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言随机生成十个整数,判断是否为素数,将二者存于一维数组中并输出

2021-11-22 12:04:26  阅读:156  来源: 互联网

标签:rand 存于 10 int srand flag C语言 素数 一维


C语言随机生成十个整数,判断是否为素数,将二者存于一维数组中并输出

1. 如何在C语言中产生随机数;

利用随机数种子,其函数原型为:srand((unsigned int)(time(NULL))
现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。他们的工作过程如下:

》首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;
》然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)
》根据需要多次调用rand(),从而不间断地得到新的随机数;
》srand()提供一个新的种子是随时都可以的,从而进一步“随机化”rand()的输出结果。

2. 判断一个数是否是素数;
一共两种方式
》n能否被2~n-1整除
》n能否被2~√n整除

来一个题目小试牛刀

题目如下:调用随机函数产生 10 个 1-100 之间的整数,找出其中所有的素数并保存到一维数组 w 中。输出随机产生的十个原始数据及找到的素数。
要求:
第一行输出随机产生的十个原始数据,第二行输出素数的个数,第三行输出找到的素数,中间用空格隔开。

贴上代码仅供参考:

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#pragma warning(disable:4996)
int prime(int n)
{
	int i;
	int flag = 0;
	if (n < 2) 
	{
		flag = 0;
	}
	else 
	{
		for (i = 2; i < n; i++) 
		{
			if (n % i == 0)//如果用可以除尽的数,则非素数
				break;
		}
		if (i < n) 
		{
			flag = 0;
		}
		else
			flag = 1;
	}
	return flag;
}
void f(int* HArr, int len)
{
	int i;
	for (i = 0; i < len; ++i)
		printf("%d ", *(HArr + i));  
	printf("\n");
}

int main() {
	int i,k=0;
	int a[10];
	int b[10];
	srand((unsigned)time(NULL));
	for (i = 0; i < 10; i++)
	{
		a[i] = rand() % 100 + 1;
		if (prime(a[i]))
		{
			b[k] = a[i];
			k++;
		}
		
	}
	f(a,10);
	printf_s("素数一共有%d个\n", k);
	f(b, k);
	return 0;
}

标签:rand,存于,10,int,srand,flag,C语言,素数,一维
来源: https://blog.csdn.net/the_senior/article/details/121468324

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有