c语言1000以内的质数
A. c语言程序 输出1000以内的所有质数,每5个换一行
可以参考下面的代码:
#include<stdio.h>
#include<math.h>
intis_prime(intn)
{
inti;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)颤纤扒return0;
return1;
}
intmain()
{
inti,n=0;
for(i=2;i<1000;i++)
{
if(is_prime(i))
{
printf("%d",i);
n++;
if(n%5==0)printf(" "竖袜);
}
}
}
(1)c语言1000以内的质数扩展阅读:
C语言参考函数:
double pow(double x,double y) 返回茄昌x^y的值
doublepow10(int p) 返回10^p的值
double sqrt(double x) 返回+√x的值
C语言isupper()函数:判断一个字符是否是大写字母
C语言isspace()函数:判断一个字符是否是空白符
C语言isprint()函数:判断一个字符是否是可打印字符
B. 求c语言程序 求1000以内的素数
可以编写一个素数考察函数,在主函链档数中调用该函数对1000以内的整数穷举考察求解,也可以在主函数中直接对1000以内的整数穷举考察求解。这里提供一个用筛选法求解的代码,思路是声明一个大棚空乱于等于1000个元素的char型(int型当然也可以,这里只是为了减少空间开销)数组并全部初始化为1,对下标不是素数的元素清0,最后依次输出不为0元素的下标便是题解。为提高操作效率,用2~33间(33^2>1000了,所以考察已充分了)的素数去除大于这个素数而小于等于1000的不为0的数,能整除的便将这个下标的元素清0。当用小于33的最大素数考察完毕后,依次输出数组中不为0的元素下标即可。代码如下:
#include"stdio.h"
intmain(intargc,char*argv[]){
inti,j;
charm[1001];//声明char型数组作为筛选对象
for(m[0]=m[1]=0,i=2;i<=1000;m[i++]=1);//m[0]和m[1]赋0,其余赋1备选
i=2;//考察次数2~33,用期间的素数去除大于i且小于等于1000间不为0的数
while((j=i)<33){
while(!m[++j]);//取j为大于i的第一个不为0的数为起始考察对象
while(j<=1000){
if(j%i==0)//这个数若能被小于它的素数整除则以它为下标的元素清0
m[j]=0;
while(!m[++j]);//下一个不为0的数为考察对象
}
while(!m[++i]);//2~33间的下一个素数
}
for(j=i=0;i<=1000;i++)//以下是输出
if(m[i])//不亏尺为0的数组元素的下标便是素数
printf(++j%20?"%4d":"%4d ",i);//每行输出20个
if(j%20)
printf(" ");
return0;
}
运行结果如下:
C. 怎么用C语言求一千以内的素数
#include<stdio.h>
int main(void)
{
int x;
int y;
int count=0;
for(x=1;x<1000;x++)
{
y=x;
if(y>1)
{
while(y>=1)
{
if(x%y==0)
count++;
y--;
}
if(y==0&&count==2)
{
printf("%d\n",x);
}
count=0;
}
else printf("1\n");
}
return 0;
}
D. 编写一个程序,输出1~1000之内所有的素数(注意:素数即质数)及个数(C语言)
源代码如下:
#include <stdio.h>
#include <math.h>
void main()
{
int n=0, i, j,w,k;
for(i=2;i<=1000; i++)
{
w=1;
k=sqrt(i);
for (j=2; j<=k; j++)
if (i%j==0) {w=0;break;}
if (w) {
++n;
if (n%10==0) printf("%d ",i);
else printf("%d ",i);
}
(4)c语言1000以内的质数扩展阅读
1、素数使用for循环查找2-1000以内的所有素数,循环次数为999次,在for循环中添加一个移位寄存器用以存储所有的素数,其初始值为一个空数组。
2、在循环内部逐个数判断是否为素数,若是素数,则使用"数组插入.vi"函数添加到移位寄存器的数组中,否则,移位寄存器中的值保留为上次的值。