當前位置:首頁 » 編程語言 » c語言求素數結果有4
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言求素數結果有4

發布時間: 2022-04-21 00:45:04

Ⅰ 求素數的c語言程序!

素數,也叫質數,就是指除了1和該數本身以外,不能被其他任何整數整除的正數。

#include<stdio.h>#include<math.h>voidmain(){intm,k,i,n=0;for(m=1;m<=200;m=m+2){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf("%5d",m);n=n+1;

Ⅱ C語言求素數代碼

方法有2個:

1、判斷n是否能被2~√n間的整數整除

#include<stdio.h>

#include<math.h>

int main()

{

int n,i;

double k;

scanf("%d", &n);

k = sqrt(n);

for (i = 2; i <= k;i++)

{

if (n%i == 0) break;

}

if (i <=k) printf("This is not a prime.");

else printf("This is a prime");

return 0;

}

(2)c語言求素數結果有4擴展閱讀:

C語言的模塊化程序結構用函數來實現,即將復雜的C程序分為若干模塊,每個模塊都編寫成一個C函數,然後通過主函數調用函數及函數調用函數來實現一大型問題的C程序編寫,因此常說:C程序=主函數+子函數。因此,對函數的定義、調用、值的返回等中要尤其注重理解和應用,並通過上機調試加以鞏固。

判斷語句(選擇結構):

if 語句:「如果」語句;if—else 語句:「若…(則)…否則…」語句;switch 語句:「切換」語句;switch—case:「切換—情況」語句。

循環語句(循環結構):

while 語句:「當…」語句;do—while 語句:「做…當…(時候)」語句;for 語句:條件語句(即「(做)…為了…」語句)。

跳轉語句(循環結構:是否循環):

goto 語句:「轉舵」語句,也稱「跳轉」語句;break 語句:「中斷」(循環)語句,即結束整個循環;continue 語句:「繼續」語句(結束本次循環,繼續下一次循環);return 語句:「返回」語句。

需要說明的是:

1、一個C語言源程序可以由一個或多個源文件組成。

2、每個源文件可由一個或多個函數組成。

3、一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。是整個程序的入口。

4、源程序中可以有預處理命令(包括include 命令,ifdef、ifndef命令、define命令),預處理命令通常應放在源文件或源程序的最前面。

5、每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。(結構體、聯合體、枚舉型的聲明的「}」後要加「 ;」。)

6、標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。

書寫規則

1、一個說明或一個語句佔一行。

2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。

3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。

Ⅲ C語言求4到100的素數

#include<stdio.h>
#include<math.h>
void main()//main前面要有數據類型
{
double i;//i要被開方,應該用double類型
int k=2,n,flag;
for(i=4;i<=100;i++)
{
n=(int)sqrt(i);
flag=0;
while(k<=n&&flag==0)
{
if(i%k==0) flag=1;
else k++;
}
if(flag=0) printf("%d,",i);//將輸出語句放在for循環裡面就可以了
}
//if(flag=0) printf("%d,",i);
//在這里for循環已經結束,這時的i=100,flag=1,當然不會被輸出

Ⅳ C語言求四位可逆素數

#include"stdio.h"
intprime(intn){//素數判斷
inti;
if(!(n&1))
return0;
for(i=3;i*i<=n;i+=2)
if(!(n%i))
return0;
return1;
}
intmain(intargc,char*argv[]){
intn,k;
for(k=0,n=1001;n<10000;n+=2)
if(prime(n)&&prime(n/1000+n/100%10*10+n/10%10*10+n%10*10))
printf(++k%10?"%5d":"%5d ",n);
if(k%10)
printf(" ");
return0;
}

運行結果:

Ⅳ C語言如何求素數

若x不是素數,

x=a*b,
我們可以要求
a<=b,
於是
a*a
<=
a*b,
也就是
a*a
<=
x
所以
a
<=
根號x.
如果在
for(a=2;
a*a<=x;
a++)
之內都找不到可以整除x的a
(也就是滿足
x%a==0
的a)
x就必定是素數了.
如果在
for(a=2;
a<=x;
a++)
之內找當然也可以,
只是浪費時間而已.

Ⅵ c語言實驗編求素數的函數

#include <stdio.h>

int is_prime(int x)
{
int i;
for(i=2;i*i<=x;i++)
if(x%i==0)
return 0;
return 1;
}
int main()
{
int n,flag=0,i;
scanf("%d",&n);
for(i=2;i*i<=n;i++)
{
if(is_prime(i) && is_prime(n-i))
{
flag=1;
printf("%d %d\n",i,n-i);
}
}
if(flag==0)
printf("No answer\n");
return 0;
}

Ⅶ c語言求素數

樓上說的不對,其實不是什麼if-else語句的問題,本來就是應該for循環內運行if(a%i==0)語句的,return1;語句是在for循環外的,表示沒有找到a的約數時才return1;也即表示a為素數。這里沒什麼問題的,
問題存在於你的while語法:你寫的while(x<=100);注意你寫的while後面有個分號,其實這就已經構成一個while循環了。循環內容就是「;」表示什麼也不做,而循環條件是1<=100為真的,程序運行到這里就進入死循環。。。從而出現你所說的「程序沒有錯,可是運行之後除了『1到100之間的所有素數是:』這行字之外啥也沒有,」
只要刪除while(x<=100);後面的分號就可以了,即
#include<stdio.h>
intprime(int);
main()
{
intx;
printf("1到100之間的所有素數是:\n");
x=1;//這里最好是從2開始的,否則會出現1也是素數的結果。或者
//你在intprime(int);函數中單獨判斷一下參數為1的特殊情
//形。
while(x<=100)//這里不要分號。但do-while語句後面是有分號的
{
if(prime(x))
printf("%d",x);
x=x+1;
}
}
intprime(inta)
{
inti;
for(i=2;i<=a/2;i++)
if(a%i==0)
return0;
return1;
}

Ⅷ 用C語言寫出求素數的編程

參考代碼:
int main(){
int num,m,n,d,c,priSum;
printf("Enter the Range Between m,n ");
scanf("%d %d", &m,&n);
for (num = n; num <= m; num++)
{
for(d = 2; d < num; d++)
{
if (num % d == 0){
continue;
}
}

if (d == num){
priSum += d;
c++;
}
}
printf("m~n之間的素數個數:%d,和 %d ",c,priSum);
return 0;
}

Ⅸ C語言 求素數 代碼

while(b<a,c!=0);
改為:
while(b<a&&c!=0);
就能保證編譯通過,並且結果輸出

但是你的代碼有邏輯錯誤,所以輸出結果不對

給你一個正確的吧:
#include <stdio.h>
int isPrime(int num)
{
int i,tag=1;
if(num==1)
return 0;
for(i=2;tag&&i<=num/2;i++)
{if(num%i==0) tag=0;break;}
return tag;
}
void main()
{
int i,t=0;
for(i=0;i<101;i++)
{
if(isPrime(i))
{t++;
printf("%2d ",i);}
if(t==5)
{printf("\n");t=0;}
}
}

Ⅹ C語言求素數

#include<stdio.h>
#include<math.h>
voidmain()
{
intx=100,d=999,a,i,temp;

for(x;x<=d;x++)
{
temp=0;
a=sqrt(x);
for(i=2;i<=a;i++)
{

if(x%i==0)
{
temp=1;
break;
}
}

if(temp==0)
printf("%d",x);
}
}