素数的求解(c语言)

  1. 输入100到200之间所有的素数。

(1)通过两层for循环实现

#include <stdio.h>

int main()

{

int i;

int j;


for (i=100;i<=200;i++)

{

for (j=2;j<=i-1;j++)

{

if(i%j==0)

break;

}

if(j==i)

printf("%d ",i);

}

return 0;

}

优化:

#include <stdio.h>

int main()

{

int i;

int j;

for (i=101;i<=200;i=i+2)

{

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

{

if(i%j==0)

break;

}

if(j>=i/2)

printf("%d ",i);

}

return 0;

}

(2)通过比较记录的次数

#include <stdio.h>

int main()

{

int i,j;

int count=0;

for (i=100;i<=200;i++)

{

count=0;   //每一次count都需要从0开始

for (j=2;j<=i-1;j++)

{

if(i%j==0)

break;

else

count++;

}

if(count==i-2)      //记录次数比较

printf("%d ",i);

}

return 0;

}

(3)布尔类型

#include <stdio.h>

int main()

{

int i,j;

bool flag;

for( i=100;i<=200;i++ )

{

flag = true;

for( j=2;j<=i-1;j++ )

{

if( i%j==0 )

{

flag=false;

break;

}

}

if( flag )

printf("%d ",i);

}

return 0;

}

注:应用布尔类型在VC6.0中不能实现。可在Microsoft Visual Studio 2008中实现。

时间: 2024-12-24 20:43:04

素数的求解(c语言)的相关文章

大规模素数的求解为题

问题原型:求三千万以内的素数. 问题的解决办法很简单,写一个求素数算法 然后循环就可以.这个是顺序执行方式,下面附上代码 public abstract class PrimeAbstract { public boolean isPrime(int i){ if(i<=1)return false; else{ for(int j=2; j<=Math.sqrt(i);j++){ if(i%j == 0)return false; } return true; } } public stat

prime,素数的判断——c语言

输入一个数a,求他是否是素数(用函数) 程序: #include<stdio.h> int prime(int a)-----------------------------------//定义一个prime的自定义函数 { int i,y=0; for(i=1;i<=a;i++) { if(a%i!=0) y++; }------------------------------------------//判断是不是素数 return y;------------------------

求解c语言关于getch和getchar

8cp58z运芽灾涂磐街<http://weibo.com/20180413p/230927983125419026817024> qv26va众饰献啪礁硬<http://weibo.com/p071p790p/230927983054065086763008> tqffgr痉幢飞苑试诔<http://weibo.com/20180413p/230927983045238123663360> 711jiv寻渭战蘸弊滥<http://weibo.com/201804

素数的筛法

一 写在开头 1.1 本文内容 本文实现了素数的筛法算法. 二 算法原理与实现 在写代码的过程中,时不时会遇到求解素数的任务,特意将素数求解方法总结成文章以备不时之需.素数的求解算法大概有两种.一种是枚举某一范围的数,然后逐个判断该数是否为素数.这种方法简单但效率不高.另一种方法是使用素数的筛法将某一范围内的所有素数筛选出来,然后再打表.筛法的原理很简单:从最小的素数2开始,依次将2的倍数给剔除,然后将后面没有被剔除的最小素数3的倍数依次剔除......重复上述操作就可以将范围内的所有合数给剔除

C语言数据结构——第一章 数据结构的概念

一.数据结构的基本概念 1.1-数据结构是什么? 数据结构是计算机存储和组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.一般情况下,精心选择的数据结构可以带来更高的运行或者存储效率.数据结构往往同高效的检索算法和索引技术有关. 想要对大型复杂程序的构造进行系统而科学的研究,必须首先对这些程序中所包含的数据结构进行深入的研究. 数据:通常用于描述客观事物,是对客观事物的符号表示.例如:在我们平时使用的各种文字.数字和特定符号都可以称之为数据.而在计算机中,数据是指所有能

杭电(hdu)ACM 4548 美素数

美素数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 4482    Accepted Submission(s): 1524 Problem Description 小明对数的研究比較热爱,一谈到数.脑子里就涌现出好多数的问题,今天.小明想考考你对素数的认识. 问题是这种:一个十进制数.假设是素数,并且它的各位数字和也是素数,则称之

POJ 1166 The Clocks (爆搜 || 高斯消元)

题目链接 题意: 输入提供9个钟表的位置(钟表的位置只能是0点.3点.6点.9点,分别用0.1.2.3)表示.而题目又提供了9的步骤表示可以用来调正钟的位置,例如1 ABDE表示此步可以在第一.二.四.五个钟调正,如原来是0点,那么调正后为3点.问经过那些步骤可以导致9个钟的位置都在0点. 分析: 这个本来是一个高斯消元的题目,但是 听说周期4不是素数, 求解过程中不能进行取余.因为取余可能导致解集变大. 不过也有用高斯消元做的,下面是用高斯消元的分析 ” Discuss也有人讨论了,4不是质数

笔试算法题(20):寻找丑数 &amp; 打印1到N位的所有的数

出题:将只包含2,3,5的因子的数称为丑数(Ugly Number),要求找到前面1500个丑数: 分析: 解法1:依次判断从1开始的每一个整数,2,3,5是因子则整数必须可以被他们其中的一个整除,如果不包含任何其他因子则最终的结果为1: 解法2:小丑数必然是某个大丑数的因子,也就是乘以2,3,或者5之后的值,所以可以利用已经找到的丑数来寻找下一个丑数,使用数组有序保存已经找到的丑 数,并且当前最大丑数值为M:用大于M/2的丑数乘以2得到M1,用大于M/3的丑数乘以3得到M2,用大于M/5的丑数

POJ 2480 求每一个数对于n的最大公约数的和

这里是枚举每一个最大公约数p,那么最后求的是f(n) = sigma(p*phi(n/p))    phi()为欧拉函数 这里可以试着算一下,然后会发现这个是积性函数的 那么只要考虑每一类质数分开算,最后乘在一起就行了 而对于f(p^k) p为素数的求解可以这样考虑 对于前一个f(p^(k-1)) , 那么f(p^k)相当于把f(p^(k-1)) 中的所有情况都乘上了p ,  然后加上新产生的gcd()=1的情况,这个利用过程中的欧拉函数定理求解 phi(n) = (p1-1)*p1^(k1-1