A. 用c語言編寫一個程序,輸出1到100中的質數
#include<stdio.h>
#inlcude<math.h>
voidmain(){
intm,k;
puts("pleaseinputthenumber:");
scanf_s("%d",&m);
printf(":");
for(intj=1;j<=m;j++){
k=sqrt(j);
for(inti=2;i<=k+1;i++){
if(j%i==0){
break;
}
if(i==k+1){
printf("%d",j);
}
}
}
}
輸入值是100就可以求100以下的質數,為了你方便我沒有把數字寫死。
B. C語言 求10-20以內素數之和
{
int m,i;
for(m=2;m<=10;m++)
{
for(i=2;i<m;i++)
if(m%i!=0) /*為什麼要用!=呢,這樣只要遇到不能被整除的數就會結束循環,這樣有些數字就會判斷錯誤*/
break; //跳出內層循環
printf("%3d",m); /*這個輸出在外層循環中,只要內層循環結束,就會執行,所以就算break起作用了,也只是跳出內層循環,還是會執行這一句,所以會順序輸出m的值*/
}
}
改:
{
int m,i;
for(m=2;m<=10;m++)
{
for(i=2;i<=m;i++) //改成i<=m,因為素數只能被1和他本身整除
if(m%i==0)//判斷是否有數能將m整除
break; //有則跳出內層循環
if(i==m)/*如果m能被其他數整除,則跳出循環後i值一定比m小,如果只被m本身整除,則跳出循環後i==m,證明m為素數*/
printf("%3d",m); //滿足條件才輸出
}
}
C. 用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
D. C語言如何實現質數輸出
通過除以小於被除數的所有數
a%d==0 則count『++;
判斷如果count==0,printf(「%d」,a);
E. c語言輸出10到20的所有素數,並統計素數的個數
int f(int n){
int i;
for (i=2;i<n;i++) if (n%i==0) return 0;
return 1;}
void main(){
int i,n=0;
for (i=10;i<=20;i++) if (f(i)) {printf("%d\t",i);n++;}
printf("一共 %d 個\n",n);
}
F. c語言 輸入20個數,找出其中的質數(素數)
void main(){
int a[20]。i。j。k;
for(i=0;i〈=19;i++)scanf(「%d」,&a[i]);
for(i=0;i<=19;i++){k=0;
for(j=2;j<a[i];j++) if(a[i]%j==0) k=1;
if(k==0) printf("%d",a[i]);
};
};