用C语言编写求质数的程序

用C语言编写求质数的程序,第1张

//我分别写出了求素数和判断素数的程序

/*

//判断一个数是否为素数

#include<stdio.h>

#include<math.h>

int isprime(int)

void main()

{

int inumber

printf("请输入一个非负整数: ")

scanf("%d",&inumber)

if(isprime(inumber))

printf("%d是素数!\n",inumber)

else

printf("%d不是素数!\n",inumber)

}

int isprime(int a)

{

int i

for(i=2i<=sqrt(a)i++)

if(a%i==0)

return 0

return 1

}

*/

/*****************************************************/

//求某个正整数以内的素数

#include"stdio.h"

#include"math.h"

int main(void)

{

int count,i,m,n,num

printf("请输入所求范围(正整数): ")

scanf("%d",&num)

count=0//count记录素数的个数

printf("%d以内的素数为:\n",num)

for(m=2m<=numm++)

{

n=sqrt(m)

for(i=2i<=ni++)

{

if(m%i==0)

break

}

if(i>n)//如果m是素数

{

printf("%6d",m)

count++

if(count%10==0)//count为10的倍数时换行

printf("\n")

}

}

printf("\n")

return 0

}

用C语言编写求质数程式

我分别写出了求素数和判断素数的程式

/*

判断一个数是否为素数

#include<stdio.h>

#include<math.h>

int isprime(int)

void main()

{

int inumber

printf("请输入一个非负整数: ")

scanf("%d",&inumber)

if(isprime(inumber))

printf("%d是素数!\n",inumber)

else

printf("%d不是素数!\n",inumber)

}

int isprime(int a)

{

int i

for(i=2i<=sqrt(a)i++)

if(a%i==0)

return 0

return 1

}

*/

/*****************************************************/

求某个正整数以内的素数

#include"stdio.h"

#include"math.h"

int main(void)

{

int count,i,m,n,num

printf("请输入所求范围(正整数): ")

scanf("%d",&num)

count=0count记录素数的个数

printf("%d以内的素数为:\n",num)

for(m=2m<=numm++)

{

n=sqrt(m)

for(i=2i<=ni++)

{

if(m%i==0)

break

}

if(i>n)如果m是素数

{

printf("%6d",m)

count++

if(count%10==0)count为10的倍数时换行

printf("\n")

}

}

printf("\n")

return 0

}

如何用c语言编写出判断一个数是否为质数的程式?

新建一个Win32 Console Application,建立一个Hello World!程式,把如下程式码粘进去执行。

#include "stdafx.h"

#include <stdio.h>

void main()

{

int a,k=0

printf("请输入大于1的正整数:")

scanf("%d",&a)

for(int i=2i<ai++)

if(a%i==0) {k=1break}

if(k) printf("%d不是质数!可以被%d整除!\n",a,i)

else printf("%d是质数!\n",a)

}

用c语言编写一个分解质因数的程式

#include <stdio.h>

void main( )

{

int data, i = 2

scanf("%d", &data)

while(data >1)

{

if(data % i == 0)

{

printf("%d ", i)

data /= i

}

else i++

}

}

用C语言编写计算三角函式的程式

math.h里的三角函式用的单位是弧度,你貌似错在这里。 答案补充 Example

/* SINCOS.C: This program displays the sine, hyperbolic

* sine, cosine, and hyperbolic cosine of pi / 2.

*/

#include <math.h>

#include <stdio.h>

void main( void )

{

double pi = 3.1415926535

double x, y

x = pi / 2

y = sin( x )

printf( "sin( %f ) = %f\n", x, y )

y = sinh( x )

printf( "sinh( %f ) = %f\n",x, y )

y = cos( x )

printf( "cos( %f ) = %f\n", x, y )

y = cosh( x )

printf( "cosh( %f ) = %f\n",x, y )

} 答案补充 Output

sin( 1.570796 ) = 1.000000

sinh( 1.570796 ) = 2.301299

cos( 1.570796 ) = 0.000000

cosh( 1.570796 ) = 2.509178

Parameter

x

Angle in radians

如何用C语言编写程式:呼叫函式求2-1000质数的个数

#include<stdio.h>

int sushu(int x)

{ int i

for(i=2i<xi++)

if(x%i==0) break

if(i==x) return 1

else return 0

}

main()

{ int i,n=0

for(i=2i<=1000i++)

if(sushu(i)==1) n++:

printf("n=%d",n)

}

用C#编写1-100的质数的程式

如要用C#计算1-100之间的所有质数和,所以先必须知道什么是质数?

一个数是不是质数“素数”是指除了能被1和自身整除外,不能被任何其它整数整除的自然数。像1,2,3,5,7都是素数。

明白了素数的概念,那么程式就很容易写出来了。要想知道一个数x是否是素数,那么只需要把1~x之间的所有整数来除x,如果存在这么一个数(1和x除外),其能够整除x(余数为0),那么x就不是素数,否则x就是素数。这是从概论出发的解法。那么下面就要看怎么优化了。

其实我们没有必要检查1~x之间的所有整数。只需检查1~[根号x]之间的数就可以了。至于为什么,可以从乘法的角度理解,我们在做除法,其实反过来也就是乘法。我们用判断15是否是素数的情况来举个例子。当我们除3的时候,3*5=15。所以,在判断3的同时也判断了另一个数5。所以我们只需要检查到根号x就可以了,当检查到根号x的时候,根号x之后也检查过了。

程式码(c#):

private static void PrintPrimes(int n)

{

输出1~n之间的所有素数,n>=3

Console.Write("1 2 ")

int i, j = 0

for (i = 3i <= ni = i + 2)

{

int k = (int)Math.Sqrt(i)

for (j = 2j <= kj++)

{

if ((i % j) == 0)

{

break

}

}

if (j >k)

{

Console.Write(i.ToString() + " ")

}

}

}

PrintPrimes(100)可打印出1到100的所有质数。

注意for回圈

如何用c语言写出100以内质数的程式

#include <stdio.h>

#include <math.h>

int ss(int n) /*检查n是否为素数,如果是则返回1,否则返回0*/

{

int i

if(n<2) return 0

for (i=2i<=(int)sqrt((double)n)i++)

if (n%i==0) return 0

return 1

}

int main(void)

{

int i,j=0

for (i=1i<=100i++)

if(ss(i))

{

j++

printf("%5d",i)

if (j%6==0) printf("\n")

}

printf("\ntotal prime=%d\n",j)

return 0

}

用C语言编写数字交通灯的程式

微控制器

假设PA0接红灯,PA1接黄灯,PA2接绿灯。高电平亮。

我的延时函式是ms延时,比如delay(1000)表示延时1000毫秒

void main()

{

DDRA|=BIT(0)|BIT(1)|BIT(2)设定PA0,PA1,PA2口为输出

while(1)

{

PORTA|=BIT(0)

PORTA&=~BIT(1)

PORTA&=~BIT(2)

delay(50000)

PORTA&=~BIT(0)

PORTA|=BIT(1)

PORTA&=~BIT(2)

delay(5000)

PORTA&=~BIT(0)

PORTA&=~BIT(1)

PORTA|=BIT(2)

delay(50000)

}

}

用c语言编写下面的程式.

main()

{int a[20]

int i,s,t,m

printf("input number")

for(i=0i<20i++)

scanf("%d",a[i])

for(i=0i<20i++)

{if(a[i]>0) s++

if(a[i]<0) t++

if(a[i]==0) m++}

printf("the +number is %d\n",s)

printf("the -number is %d\n",t)

printf("the 0 is %d\n",m)

}

因为我没有执行过,但这个程式简单,你试试看能执行!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11624065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存