当前位置:首页 » 编程语言 » 求1到100内素数的个数c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

求1到100内素数的个数c语言

发布时间: 2023-02-11 13:00:07

㈠ 用c语言编写程序输出1-100内的素数

用常规的判素性方法可如下实现
#include "stdio.h"
#include "math.h"
bool IsPrime(int x)
{
int i, s;
s = sqrt(x + 1);
for(i = 2; i <= s; i++)
if(x % i == 0) return false;
return true;
}
void main( )
{
int i;
for(i = 2; i < 100; i++)
if(IsPrime(i))
printf("%d ", i);
}
也可采用筛选法,筛选法效率会高一些,楼上的虽然也是筛选法,但他的效率却并不高。筛选法的思路是将那些非素数筛掉,留下那些素数。命题“对于1<x<100的合数x, 必含有小于10的质因子”可以证明是真命题,它的逆反命题“对于1<x<100的数,如果不含有小于10的质因子,则它必为素数。”则也是真命题。因此筛除时,只要筛除含有10以内的质因子的数就可以了。下面给出筛选法的代码。
#include "stdio.h"
void main( )
{
bool isprime[100];
int i, j;
isprime[0] = false;
isprime[1] = false;
for(i = 2; i < 100; i++) /*先初始化2~100的都是素数,然后将非素数筛除掉*/
isprime[i] = true;
for(i = 2; i < 10; i++) /*将所有含有小于10的质因子的数筛除掉*/
{
if(isprime[i]) /*如果i是素数,则将它的倍数全部筛掉*/
for(j = i * i; j < 100; j += i) /*从i*i开始检测是因为小于i*i的合数都被小于i的素数筛除了*/
isprime[j] = false;
}
for(i = 2; i < 100; i++)
if(isprime[i])
printf("%d ", i);
}

㈡ 求1-100内的素数c语言编程

楼主 {} 使用有问题

要 把逻辑 理清楚

先画框图,再写代码

结果:

2

3

5

7

11

13

17

19

23

29

31

37

41

43

47

53

59

61

67

71

73

79

83

89

97

㈢ 用C语言编1到100之间的素数程序

程序及解释如下:

首先判断素数的算法:用一个数分别去除以2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。

则有如下程序

{ int m,k,i;

for(m=1;m<=100;m=m+2) //m=m+2,因为偶数都不是素数,不用考虑,所以每次m+2.

{ k=sqrt(m) //先求这个数的平方跟

for(i=2;i<=k;i++) //然后用i(从2到k,即m的平方跟)去除m,

if(m%i==0) break; //如果能被整除, 则不是素数,break

if(i>=k+1) pritnf("%d",m); //如果i>k+1,则说明没有数能整除m.则m是素数

}
}

(3)求1到100内素数的个数c语言扩展阅读:

素数被利用在密码学上,所谓的公钥就是将想要传递的信息在编码时加入质数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的密钥,则解密的过程中(实为寻找素数的过程),将会因为找质数的过程(分解质因数)过久,使即使取得信息也会无意义。

在汽车变速箱齿轮的设计上,相邻的两个大小齿轮齿数设计成质数,以增加两齿轮内两个相同的齿相遇啮合次数的最小公倍数,可增强耐用度减少故障。

在害虫的生物生长周期与杀虫剂使用之间的关系上,杀虫剂的质数次数的使用也得到了证明。实验表明,质数次数地使用杀虫剂是最合理的:都是使用在害虫繁殖的高潮期,而且害虫很难产生抗药性。

以质数形式无规律变化的导弹和鱼雷可以使敌人不易拦截。

多数生物的生命周期也是质数(单位为年),这样可以最大程度地减少碰见天敌的机会。

参考资料:网络 素数



㈣ 用C语言,判断1-100之间有多少个素数,并输出所有素数。

可以使用筛法来判断 1-100 之间有多少个素数,并输出所有素数。筛法是一种通过枚举合数的因子来筛选出素数的方法。

下面是用 C 语言实现的代码示例:

#include <stdio.h>
#include <stdbool.h>

#define N 100

int main(void)
{

// 创建一个 bool 类型的数组,用来存储每个数是否为素数
bool prime[N + 1];


// 初始化数组,假设所有数都是素数
for (int i = 0; i <= N; i++)
prime[i] = true;

// 使用筛法筛选出素数
for (int i = 2; i <= N; i++)
{
// 如果 i 不是素数,则跳过
if (!prime[i])
continue;

// 输出 i
printf("%d ", i);

// 将 i 的倍数标记为合数
for (int j = i * i; j <= N; j += i)
prime[j] = false;
}

return 0;

}


运行结果如下:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

在这个程序中,使用了一个 bool 类型的数组来存储每个数是否为素数。使用筛法筛选出 1-100 之间的素数,并输出每个素数。

需要注意的是,C 语言没有内置的 bool 类型,需要使用头文件 stdbool.h 来支持 bool 类型。在上面的代码中,需要包含头文件 stdio.h 和 stdbool.h。

㈤ 用c语言:输出在1~100内的所有素数

#include<stdio.h>

#include<math.h>

intmain()

{

intn;

inti;

intflag=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);

}

return0;

}

(5)求1到100内素数的个数c语言扩展阅读

C语言判断素数

#include<stdio.h>

intmain()

{

inti,j;

intm,n,p;

for(i=11;i<1000;i++)

{

if(i>=11&&i<=99)

{

m=i%10;

n=i/10;

}

else

{

m=i/100;

n=i%10;

}

if(m==n)

{

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

if(i%j==0)

break;

if(j>=i/2)

{

printf("%d",i);

}

}

}

return0;

}

㈥ 怎样用C语言统计1到100之间素数的个数

#include <stdio.h>
#include <math.h>

int main(void)
{
int i,j,cnt=0;
int max = 0;

for (i = 2; i<=100; i++)
{
max = sqrt((double)i)+1;
for (j = 2; j<max; j++)
{
if (i % j == 0)
{
break;
}
}
if (j >= max)
{
cnt++;
}
}

printf("cnt=%d\n",cnt);

return 0;
}

㈦ 用C语言求解1-100之间的所有素数。

Action()

{

int i,j;

int sum=0;

int flag;//是否为素数

for(i=2;i&lt;=100;i++){

flag=1;

for(j=2;j&lt;=i-1;j++){

if(i%j==0){

flag=0;

break;

}

}

if(flag==1){

sum+=i;

}

}

lr_output_message("sum=%d",sum);

return 0;

}

输出的结果:sum=1060

(7)求1到100内素数的个数c语言扩展阅读:

方法二、使用函数:

Action()

{

int i;

int sum=0;

for(i=2;i&lt;=100;i++){

if(isPrime(i)){

sum+=i;

}

}

lr_output_message("素数之和sum=%d",sum);//loadrunner的输出,其他编译器可能是printf

return 0;

}

int isPrime(a){

int j;

int flag=1;

for(j=2;j&lt;=a-1;j++){

if(a%j==0){

flag=0;

break;

}

}

return flag;

}