/*
//判断一个数是否为素数
#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)
}
因为我没有执行过,但这个程式简单,你试试看能执行!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)