精华内容
下载资源
问答
  • C语言输出素数表(1-100)&前100个

    万次阅读 多人点赞 2018-01-11 18:55:36
    本来是想第二篇做双链表的,今天看C和指针第四章,复习了以下之前做的素数输出,三种不同方法,结果如下: 1.输出1-100以内的素数: //这个比较简单,不多做介绍,唯一注意的一点是for循环截止条件是i(n),因为...

    本来是想第二篇做双链表的,今天看C和指针第四章,复习了以下之前做的素数输出,三种不同方法,结果如下:

    1.输出1-100以内的素数:

    //这个比较简单,不多做介绍,唯一注意的一点是for循环截止条件是i<sqrt(n),因为对于一个整数n,其是否为素数,在所有小于其平方根的数已经判断完毕,没必要再增加工作量判断到n-1;
    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	int n;
    	int i;
    	int flag=0;
    	for(n=2;n<=100;n++)
    	{
    		flag=0;
    		for(i=2;i<=sqrt(n);i++)
    		{
    			if(n%i==0)
    				{
    					flag=1;
    					break;
    				}
    		}
    		if(flag==0)
    			printf("%d ",n);
    	}
    
    	return 0;
    }

    2.同样,也是输出1-100以内的素数,这个构造一个数组,将其所有元素初始化为1,表示素数,这时取x从2开始,到100以内做循环,若x为素数,即prime[x]!=0,使得每个i*x位置元素置0(prime[i*x]=0),表示为非素数,循环结束前x+1。

    #include<stdio.h>
    int main()
    {
    	int prime[100];
    	int i;
    	for(i=0;i<100;i++)
    		prime[i]=1;
    	int x=2;
    	while(x<100)   //是每一个数 x*i x=2->100 
    	{
    		for(i=2;i*x<100;i++)
    		{
    			if(prime[x])
    			{
    				prime[i*x]=0;
    			}
    		}
    		x++;
    	}
    	for(i=2;i<100;i++)
    	{
    		if(prime[i])
    			printf("%d ",i);
    	}
    	return 0;
    }


    3.该方法是输出100个素数,基本思想是构造一个素数表,利用函数判断每个数是否能被其之前的素数整除,如果不能,则在素数表内加上该元素,不断循环(while循环结束条件是cnt即数组个数>100)。

    #include<stdio.h>
    int isprime(int n,int prime[],int maxnumber);
    
    int main()
    {
    	int prime[100]={2,};	//构造素数表,共100个元素,初始化第一个为2,已知为素数;其余自动为0; 
    	int cnt=1;              //计数; 
    	//int count=0; 
    	int i=3;                //从3开始; 
    	while(cnt<=100)          //cnt是数组现有素数个数 
    	{
    		if(isprime(i,prime,cnt)) //判断i是否为素数 
    		{
    			prime[cnt++]=i;     //如果是记录到数组中,下标加1; 
    		}
    		i++;                    //下一个数 
    	}
    	
    	for(i=0;i<100;i++)
    	{
    		if(i%10==0 && i!=0)
    			putchar('\n');
    		printf("%5d",prime[i]);
    	}
    	
    	return 0;
    }
    
    int isprime(int n,int prime[],int maxnumber)
    {
    	int i;
    	for(i=0;i<maxnumber;i++)
    	{
    		if(n%prime[i]==0)    //判断能否被素数表中的数整除,如果能,则不是素数 
    			return 0;
    	}
    	
    	return 1;
    }




    展开全文
  • C语言素数判断及输出

    多人点赞 热门讨论 2021-05-16 22:25:10
    C语言素数判断 我们要想解决素数问题首先要明确素数是什么。 文章目录C语言素数判断什么是素数如何计算素数素数源代码 什么是素数 素数素数一般指质数。质数是指在大于1的自然数中,除了1和它本身以外不再有...

    C语言之素数判断及输出

    我们要想解决素数问题首先要明确素数是什么。

    什么是素数

    素数:素数一般指质数。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数(来自百度词条)。

    如何计算素数

    当一个数本身除了1和它本身以外不再有其他因数时为素数。
    1):因此判断一个整数num是否为素数,只需用 2 ~ num-1 (因为所有整数都能被1整除)之间的每一个整数去除num,如果都不能被整除,那么 num即一个素数。
    用C语言语句表示为:

    //如判断数num是否为素数
    flag = 0;
    for(int i=2;i<num;i++)
    {
    	if(num%i==0)
    	flag = 1;
    }
        if{flag == 0}
         { //是素数 }
        else
        { //不是素数 }
    

    这里循环可以继续做一下优化减少不必要的运算
    2):num不必被 2 ~ num-1 之间的每一个整数去除,只需被 2 ~ √num之间的每一个整数去除就可以了。如果 num不能被 2 ~ √num之间任一整数整除,num 一定是素数。

    // An highlighted block
    flag = 0;
    for(int i=2;i<=sqrt(num);i++)
    {
    	if(num%i==0)
    	flag = 1;
    }
        if{flag == 0}
         { //是素数 }
        else
        { //不是素数 }
    

    这里需要用到sqrt函数,在c语言<math.h>(数学库)中直接调用即可
    这里需要用到sqrt函数,在c语言<math.h>(数学库)中直接调用即可.

    素数源代码

    (1)素数判断

    // **判断num是否为素数**
    #include<stdio.h>
    #include<windows.h>
    #include <math.h>
    #pragma warning(disable:4996)   //vs(vs2013)使用scanf时需要加 _s 否则会报错,用这种是解决方法之一
    
    int main()
    {
    	int num, i;
    	int flag=0;              //判断标志
    	scanf("%d", &num);  //输入要判断的整数num
    	if (num == 0){
    		flag = 1;
    	}
    	for (i = 2; i <= sqrt(num); i++)
    	{
    		if (num%i == 0){
    			flag = 1; 
    			break;
    		}
        }
    	if (flag == 0){
    		printf("%d是素数。\n",num);
    	}
    	else{
    		printf("%d不是素数。\n", num);
    	}
    	system("pause");   //vs运行会直接结束运行窗口自动关闭,可以用<window.h>中的syetem函数使运行窗口保留。 
    	return 0;
    }
    
    

    (2)输出1~100所有的素数

    // **找出1~100中所有素数**
    #include<stdio.h>
    #include<Windows.h>
    #include <math.h>
    
    int main()
    {
    	int i = 2,flag=0;
    	for (; i <= 100; i++)
    	{
    		flag = 0;
    		int j = 2;
    		for (; j <=sqrt(i); j++){
    			if (i % j == 0){
    				flag++;
    				break;
    			}
    		}
    		if (flag == 0){
    			printf("%d  ", i);
    		}
    		
    	}
    	printf("是素数。\n");
    	system("pause");   //vs运行会直接结束运行窗口自动关闭,可以用<window.h>中的system函数使运行窗口保留。 
    	return 0;
    }
    
    

    代码都是自己写的,如有不对欢迎指正【抱拳】。

    展开全文
  • C语言输出可逆素数

    2020-03-16 20:40:47
    #include<stdio.h> #include<math.h> int main(){ int fun1(int); int fun2(int); int n,i,j; printf("请输入范围:"); scanf("%d",&n); for(i=2;i<=n;i++) if(fun1(i)){ ... if(...
    #include<stdio.h>
    #include<math.h>
    int main(){
    	int fun1(int);
    	int fun2(int);
    	int n,i,j;
    	printf("请输入范围:");
    	scanf("%d",&n);
    	for(i=2;i<=n;i++)
    		if(fun1(i)){
    			j=fun2(i);
    			if(fun1(j))
    				printf("%5d",i);
    		}
    }
    
    int fun1(int n){
    	int i,flag=1;
    	for(i=2;i<n;i++)
    		if(n%i==0){
    			flag=0;
    			break;
    		}
    	return flag;
    }
    int fun2(int n){
    	int a[20],i=0,j,sum=0;
    	while(n){
    		a[i++]=n%10;
    		n=n/10;
    	}
    	for(j=0;j<i;j++)
    		sum+=a[j]*pow(10,i-j-1);
    	return sum;
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    展开全文
  • 1.定义判断一个数是否为素数的函数(素数从2开始判断) 2.在主函数中输入范围 3.判断数i是否同时满足i和i+2都为素数 4.k=0若满足3.条件则k积累一次 5.k最后则为孪生素数的对数

    在这里插入图片描述
    1.定义判断一个数是否为素数的函数(素数从2开始判断)
    2.在主函数中输入范围
    3.判断数i是否同时满足i和i+2都为素数
    4.k=0若满足3.条件则k积累一次
    5.k最后则为孪生素数的对数

    展开全文
  • C语言判断素数

    2016-02-17 22:52:49
    c语言实现输入一个数字并判断这个数是否是素数,判断完毕输出结果
  • c语言素数

    2019-11-09 15:20:03
    c语言输出正数n以内的素数。如果输入一个负数,则会提示:”输入数据错误,请输入一个正数。“ 示例: 输入:100` 输出: 代码如下: 我所写的这个代码中首先用了一个选择结构if语句的判定,如果输入的数m符合...
  • C语言 判断素数

    2020-09-29 22:37:42
    对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。 输入样例: 2 11 111 输出样例: Yes No 代码如下: #include<stdio.h> #include<math.h> int main() { int n,i; long long ...
  • C语言编写的输出素数

    2011-10-16 14:46:12
    C语言编写的输出素数程序 c语言初学者必会
  • C语言 回文素数

    千次阅读 2018-12-05 13:52:16
    编程计算并输出不超过n(100&lt;=n&lt;1000)的回文素数,并统计这些回文素数的个数,其中n的值从键盘输入。 程序运行示例1 Input n: 100↙ 11 count=1 程序运行示例2 Input n: 1000↙ 11 101 131 1...
  • //7.2 写一个判断素数的函数,在主函数输入一个整数,输出是否素数的信息。 void prime_number(int n);//声明函数 int n; printf(&amp;quot;输入一个大于0的整数:&amp;quot;); scanf(&amp;quot;%...
  • c语言-素数

    2018-12-07 21:46:58
    素数和(5分) 题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。 现在,给定两个整数n和m,0&...输出格式: 一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括...
  • C语言素数

    千次阅读 2017-08-09 17:46:13
    题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推...一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。 输入样例: 2 4  输出
  • 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime 样例输入 97 样例输出 prime 来源/分类 C语言 题目截图: 思路: 找一...
  • C语言 · 素数判断

    2017-02-25 22:18:00
    算法提高 素数判断 时间限制:1.0s 内存限制:512.0MB ...编写一函数IsPrime,判断某个大于2的正...注意:是素数输出yes,不是素数输出no,其中yes和no均为小写。 1 #include<stdio.h> 2 #include...
  • C语言统计素数并求和

    千次阅读 2020-08-10 19:21:45
    在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。 输入样例: 10 31 输出样例: 7 143 本题中采用的判断素数的方法:判断一个数m能不能被 2 ~√m间任一整数整除,如果不能m 必定是素数。 #...
  • C语言-素数的判定

    2021-03-11 12:59:06
    题目描述 ...输出该区间内素数的个数。 #include<stdio.h> void main(){ int a,b,t,i,j,sum; while(~scanf("%d%d",&a,&b)){ if(a>b){ t=a;a=b;b=t; } sum=0; for(i=a;i&l
  • c语言 统计素数并求和

    千次阅读 2020-03-07 23:07:10
    本题要求统计给定整数 M 和 N 区间内...在一行中顺序输出 M 和 N 区间内素数的个数以及它们的和,数字间以空格分隔。 我的答案: #include <stdio.h> int main() { int count = 0, sum = 0; int m, n; i...
  • 分析:首先找出100~200以内的所有整数,再让这些整数对除了1和它本身以外的数求余,如果有能整除的就不是素数,否则就为素数。代码实现:#includeint main(){int conut = 0;int i = 0;for(i=100; i<=200; i++) //...
  • C语言 · 素数求和

    2017-02-26 18:41:00
    算法提高 素数求和 ...样例输出 2 数据规模和约定  测试样例保证 2 <= n <= 2,000,000 作者注释:水平有限,此题有些不知所措——n较大时结果有误,因而后面两个测试点总是不过。 1 #...
  • 一个是判断并输出素数,另一个是斐波那契数列。素数:质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。例如数字7,我们从2开始找它的因子,7/2,7/3,7/4,7/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,271
精华内容 508
关键字:

c语言输出素数

c语言 订阅