c語言輸出質數
『壹』 c語言程序輸出1000以內的質數,要求10個數一行
#include<stdio.h>
int main()
{
int k=0,f=0;
for(int i=2;i<=1000;i++)
{
f=0;//置0,用於標記下一個非質數
for(int j=2;j<i;j++)
{
if(i%j==0)//,i能被2~i的一個數j整除,就說明 i不是質數
{
f=1;//標記,不是質數
break;
}
}
if(f==0)//未被標記,是質數
{
k++;//計數
if(k%10==0)//質數的個數是10的倍數,換行
printf("%4d ",i);
else
printf("%4d",i);
}
}
return 0;
}
『貳』 C語言計算質數
#include<stdio.h>
staticcharm[8000000];
staticintprime[500000];
#defineMAX_N7368787
voidset(void)
{
inti,j;
for(i=2;i<=MAX_N;i++)
{
if(m[i]==1)continue;
for(j=i+i;j<=MAX_N;j+=i)
m[j]=1;
}
for(i=j=0;i<=MAX_N;i++)
if(m[i]==0)prime[j++]=i;
}
intmain()
{
intm,n,;
while(~scanf("%d%d",&m,&n))
{
for(i=m;i<=n;i++)
{
printf("%d",prime[i-1]);
if(i==n||(i-m)%10==9)putchar(' ');
elseputchar('');
}
}
return0;
}
『叄』 c語言題目 以每行8個的形式輸出100-999內的質數
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
if (n==2 || n==3) return 1;
for (int i=2;i<=sqrt(n);i++) {
if (n%i==0) return 0;
}
return 1;
}
int main() {
int i,j=0;
for (i=100;i<1000;i++) {
if (isPrime(i)) {
printf("%4d", i);
if (++j==8) {
j = 0; printf("\n");
}
}
}
}
『肆』 C語言。。輸入一個正整數,輸出它的所有質數的因子(如180的質數因子為2,2,3,3,5)
int prime(int x)
{
int i;
for (i = 2; i <= x / 2; i++)
if (x%i == 0)
return 0;
return 1;
}
『伍』 用C語言打出質數
樓上的程序運行結果有問題哦。。。
--------------------------------
1.
#include<stdio.h>
main()
{
int i, j, M, N;
int flag; //標志是否為質數
printf("input m:");
scanf("%d", &M);
printf("input n:");
scanf("%d", &N); //輸入M和N
if(M<2)
{
M=2;
printf("2\n");
}//小於2的數不為質數,直接從3數起,並且把質數2列印出來
for(i=M+1;i<=N;i++)//從M到N一個個的數數
{
flag=0; //初始化,為質數
for (int j=2;j<=i/2;j++) //從除以2開始,一直除以到i/2,(不用除到i了,判斷9/7能不能整除沒意義,肯定不行的)
{
if (!(i %j) ) //如果整除(%為取余數)
{
flag=1; //制標志為1(不為質數)
break; //跳到M到N的下一個數
}
}
if (flag==0) printf("%d\n",i); //如果從除以2開始,一直除以到i/2都不能整除,則為質數,列印出來。
}
}
------------------------
VC6.0調試輸出
input m:3
input n:20
5
7
11
13
17
19
2
#include<stdio.h>
int main()
{
int i, j, M, N;
int flag;
printf("input m:");
scanf("%d", &M);
if(M<2)
{
M=2;
printf("2\n");
return 0;
}//小於2的數不為質數,直接從3數起,並且把質數2列印出來,退出
for(i=M+1;;i++)//從M到N一個個的數數
{
flag=0; //初始化,為質數
for (j=2;j<=i/2;j++) //從除以2開始,一直除以到i/2,(不用除到i了,判斷9/7能不能整除沒意義,肯定不行的)
{
if (!(i %j) ) //如果整除(%為取余數)
{
flag=1; //制標志為1(不為質數)
break; //跳到M到N的下一個數
}
}
if (flag==0) printf("%d\n",i);
return 0;//如果從除以2開始,一直除以到i/2都不能整除,則為質數,列印出來。
}
return 0;
}
---------------------------
VC6.0調試輸出
input m:8
11
『陸』 C語言 輸出1到100之間的全部素數
有三種方法:
1、輸出1-100以內的素數:
(6)c語言輸出質數擴展閱讀:
在這個小程序中主要用到的是for循環
for 循環語句的一般形式為:
for (表達式1; 表達式2; 表達式3)
{
語句;
}
需要注意的兩點:
1) 表達式1、表達式2和表達式3之間是用分號;隔開的,千萬不要寫成逗號。
2)for(表達式1;表達式2;表達式3)的後面千萬不要加分號,很多新手都會犯這種錯誤——會情不自禁地在後面加分號。
因為 for 循環只能控制到其後的一條語句,而在C語言中分號也是一個語句——空語句。所以如果在後面加個分號,那麼 for 循環就只能控制到這個分號,下面大括弧裡面的語句就不屬於 for 循環了。
『柒』 c語言實現輸出1~100內質數,求思路。謝謝!
利用循環,讓這個數從2除到開根號——>for(i=2;i<=sqr(m);i++)
然後循環內判斷是否能被整除,並用flag做個標記,初值flag=1——>if(m%i==0)flag=0
循環完成,即判斷結束,利用標記判斷是否是質數,如果是,那麼flag應該還是為1——>if(flag)printf……
以上就是判斷部分,那麼從1~100可以在以上基礎上加上外循環for(m=1;m<=100;m++)就實現從1~100依次判斷了
『捌』 輸出100以內的質數,用c語言編寫
#include <stdio.h>
int main(int argc, char **argv)
{
int x;
for (x=1;x<100;x++){
int i;
int isprime=1;//表示x是素數。
for(i=2;i<x;i++){
if (x%i==0){
isprime=0;
break;
}
}
if (isprime==1){
printf("%d",x);
}
}
return 0;
}
C語言編程計算注意事項:
1、編程時注意符號大小寫。
2、main函數要有返回值
3、C語言中定義數組,要定義出大小,數組的大小隻能是常量不能是變數。
4、%md ; %0md ;%.mf;(以m位進行右對齊輸出,不足m位空格補上;以m位進行右對齊輸出。不足m位用0補上;保留m位小數)
『玖』 C語言如何實現質數輸出
通過除以小於被除數的所有數
a%d==0 則count『++;
判斷如果count==0,printf(「%d」,a);