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"函數添加到移位寄存器的數組中,否則,移位寄存器中的值保留為上次的值。