Ⅰ c語言判斷是不是素數的程序
1、首先打開CodeBlocks,創建一個新項目。
Ⅱ 判斷是否是素數編程
#include<stdio.h>
int fun(int x)
{
for(int i=2;i<x;i++)
if(x%i==0)
return 0;
return 1;//是素數返回值為 1;
}
int main()
{
int n;
scanf("%d",&n);
if(n<2)
{
while(1)//無限循環,不執行break一直循環;
{
printf("輸入錯誤;請重新輸入 ");
scanf("%d",&n);
if(n>=2)
{
printf("輸入正確;開始判斷 ");
if(fun(n))
{
printf("%d is a prime number.",n);
break;
}
else
{
printf("%d is not a prime number.",n);
break;
}
}
}
}
else//n>=2時的素數判斷;
{
if(fun(n))
printf("%d is a prime number.",n);
else
printf("%d is not a prime number.",n);
}
return 0;
}
Ⅲ 如何編寫一個C語言程序判斷一個數是否是素數
思路1:
判斷一個整數m是否是素數,只需把m被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼m就是一個素數。代碼如下:
#include <stdio.h>
int main(){
int a=0; // 素數的個數
int num=0; // 輸入的整數
printf("輸入一個整數:");
scanf("%d",&num);
for(int i=2;i<num;i++){
if(num%i==0){
a++; // 素數個數加1
}
}
if(a==0){
printf("%d是素數。
", num);
}else{
printf("%d不是素數。
", num);
}
return 0;
}
思路2:
另外判斷方法還可以簡化。m不必被 2 ~ m-1 之間的每一個整數去除,只需被 2 ~ 之間的每一個整數去除就可以了。如果m不能被 2 ~ 間任一整數整除,m必定是素數。例如判別17是是否為素數,只需使17被2~4之間的每一個整數去除,由於都不能整除,可以判定17是素數。代碼如下:
#include <stdio.h>
#include <math.h>
void main(){
int m; // 輸入的整數
int i; // 循環次數
int k; // m 的平方根
printf("輸入一個整數:");
scanf("%d",&m);
// 求平方根,注意sqrt()的參數為 double 類型,這里要強制轉換m的類型
k=(int)sqrt( (double)m );
for(i=2;i<=k;i++)
if(m%i==0)
break;
// 如果完成所有循環,那麼m為素數
// 注意最後一次循環,會執行i++,此時 i=k+1,所以有i>k
if(i>k)
printf("%d是素數。
",m);
else
printf("%d不是素數。
",m);
return 0;
}
Ⅳ c++判斷輸入的數是否為素數,如何編程
#include
<iostream>
using
namespace
std;
#include
<math.h>
//此為數學函數庫。程序中要用到數學函數時必須包含此語句。
void
f(int
n)
//此函數只判斷是否為素數。
{
int
i,j=0;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)
j++;
//j在這里只起標識作用,若為0不變則說明是素數,否則為非素數。
if(n==0||n<0)
cout<<"數據錯誤!"<<"\a"<<endl;
//「0和負數」顯然不是處理的對象。
else
if(n==1)
cout<<"這個數不是素數。"<<endl;
//「1」要特殊處理。
else
{
if(j==0)
cout<<"這個數是素數。"<<endl;
else
cout<<"這個數不是素數。"<<endl;
}
}
int
main()
{
int
n;
cout<<"請輸入要檢驗的整數:"<<endl;
cin>>n;
f(n);
return
0;
}
Ⅳ 用C語言的編程:利用調用函數,判斷一個數是否是素數。
1、首先需要打開vs軟體工程,准備好一個空白的C語言文件,引入頭文件,主函數中暫時沒有內容:
Ⅵ 用c++編程:輸入一個數,判斷其是不是素數
#include<stdio.h>
int main()
{
int m, n;
printf("請輸入一個正整數: ");
scanf_s("%d", &m);
for (n=2; n < m - 1; n = n + 1)
if (m % n == 0)
break;
if (n < m)
printf("%d不是素數 ",m);
else
printf("%d是素數 ",m);
}
(6)判斷是否為素數編程擴展閱讀
C語言中條件判斷語句if和switch的用法
用 if 語句可以構成分支結構,它根據給的條件進行判定,以決定執行哪個分支程序段。首先要注意switch 的語法結構,不能有錯誤。
整形表達式的結果值如果等於值1,就執行語句1,如果等於值2,就執行語句2,如果表達式的值與任何 case 都不一樣的話,那麼就會執行 default 後面的默認語句,也可以沒有默認語句,最後結束整個 switch 語句。
注意每個語句後面的 break,如果沒有 break,break 會跳出當前的 case 語句,從而跳出整個 switch 語句。case 後面的標簽只能是整形常量或者整形常量表達式,不能用變數作為 case 的標簽。
Ⅶ 如何用c語言編程判斷一個數是不是素數
方法一:
#include<stdio.h>
int main(){
int i,j;
printf("請輸入一個正整數。\n");
scanf("%d",&i);
if(i<2)
printf("小於2,請重新輸入。\n");
elseif(i%2==0)
printf("%d不是一個素數。\n",i);
else{
for(j=2;j<=i/2;j++){
if(i%j==0){
printf("%d不是一個素數。\n",i);
break;
}
if(j>i/2){
printf("%d是一個素數。\n",i);
break;
}
}
}
}
方法二:
#include<stdio.h>
int main(){
int a=0;
int num=0;
scanf("%d",&num);
for(inti=2;i<num-1;i++){
if(num%i==0){
a++;
}
}
if(a==0){
printf("YES\n");
}else{
printf("NO\n");
}
}
方法三:
#include"stdio.h"
int main(){
printf("\t\t\t\t\thelloworld\n");
int a,i;
do{
printf("inputnumberjudgeprimenumber:\n");
scanf("%d",&a);
for(i=2;i<a;i++)
if(a%i==0)break;
if(i==a)
printf("%d是素數\n",a);
else
printf("%d不是素數\n",a);
}while(a!=0);
}
Ⅷ C語言編程判斷輸入的正整數是否為素數。
將:for(k=2;k<=x[i]-1;k++)改成:for(g=0,k=2;k<=x[i]-1;k++)主要是在這個for循環前令g=0。
因為輸入的不止一個數,開頭的初始化g=0,在第一個數的時候就可能已經被改了。後面的數不重新初始化g=0,就不能保證對了。
判斷一個正整數n是不是素數的思路:
思路1):因此判斷一個整數m是否是素數,只需把 m 被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼 m 就是一個素數。
思路2):另外判斷方法還可以簡化。m 不必被 2 ~ m-1 之間的每一個整數去除,只需被 2 ~√m之間的每一個整數去除就可以了。
如果 m 不能被 2 ~√m間任一整數整除,m 必定是素數。例如判別 17 是是否為素數,只需使 17 被 2~4 之間的每一個整數去除,由於都不能整除,可以判定 17 是素數。
原因:因為如果 m 能被 2 ~ m-1 之間任一整數整除,其二個因子必定有一個小於或等於√m,另一個大於或等於√m。
例如 16 能被 2、4、8 整除,16=2*8,2 小於 4,8 大於 4,16=4*4,4=√16,因此只需判定在 2~4 之間有無因子即可。
正確代碼如下:
#include<math.h>/*sqrt*/
#include<stdio.h>/*scanf,printf,system*/
int isPrime(int n)//判斷n是否為素數,如果是則返回1,否則返回0。
{
if(n<=1)return 0;//小於等於1直接退出。
int i;
for(i = 2; i <= (int)sqrt(n); i ++)//從2到算術平方根遍歷。
if(!(n%i)) return 0;//存在約數,不是素數,返回0。
return 1;//不存在約數,返回1,表示為素數。
}
main ()
{
int num;
scanf ("%d", &num);
if ( isPrime( num) )//num是素數。
printf ("%d is a prime",num);
else
printf ("%d isn't a prime",num);//num不是素數。
system("PAUSE");//暫停界面。
return 0;
}
(8)判斷是否為素數編程擴展閱讀:
輸入一個正整數或0,判斷是否為質數:
#include "stdio.h"
int main()
{
while(1)
{
int n,flag,i;
printf("請輸入一個數:");
scanf("%d",&n);
flag = n/2+1;
if(n==0||n==1)
printf("%d既不是質數也不是合數 ",n);
else if(n==2)
printf("%d是質數 ",n);
else
{
for(i=2;i<=flag;i++)
{
if((n%i)==0)
{
printf("%d不是質數,是合數 ",n);
break;
}
if(i==flag&&(n%i)!=0)
printf("%d是質數 ",n);
}
}
}
}
Ⅸ 判斷一個數是否是素數的程序講解
素數又稱質數。所謂素數是指除了1和它本身以外,不能被任何整數整除的數。
該代碼的基本思路為:如果m不能被2~它的平方根中的任一數整除,m必定是素數。
代碼解析如下:
main()
{
int m; // 輸入的整數
int i; // 循環次數
int k; // m 的平方根
scanf(%d,&m); //輸入m
k=sqrt(m); //對m開方賦給k
for(i=2;i<=k;i++) //從2到k依次加1循環
if(m%i==0)break;//當m可以整除i時,退出,不整除,說明是素數
if(i>=k+1)
printf(%d is a prime number ,m);//i不小於k+1時,m是素數,否則,m不是素數
else
printf(%d is not a prime number ,m);
}
(9)判斷是否為素數編程擴展閱讀:
判斷素數的程序代碼的另一思路:判斷一個整數m是否是素數,只需把m被2~m-1之間的每一個整數去除,如果都不能被整除,那麼m就是一個素數。
代碼及解析如下:
#include <stdio.h>
int main(){
int a=0; // 素數的個數
int num=0; // 輸入的整數
printf("輸入一個整數:");
scanf("%d",&num);
for(int i=2;i<num;i++){
if(num%i==0){
a++; // 素數個數加1
}
}
if(a==0){
printf("%d是素數。 ", num);
}else{
printf("%d不是素數。 ", num);
}
return 0;
}
Ⅹ 編寫一個C語言程序判斷一個數是否是素數
目的:判斷一個數是否為素數
#include<stdio.h>
intmain(void)
{
int m;
inti;
scanf("%d",&m);
for(i=2;i< m;i++) //2到(m-1)的數去除m
{
if(m%i==0)//判斷能否整除
break;
}
if(i== m)
printf("YES!
");
else
printf("No!
");
}
for循環的功能:
①若能整除,通過break跳出函數;
②若一直到m-1都不能整除,此時i再自增1到m,不滿足i< m跳出for循環,這時i= m。
(10)判斷是否為素數編程擴展閱讀:
素數定理:
1、在一個大於1的數a和它的2倍之間(即區間(a,2a]中)必存在至少一個素數。
2、存在任意長度的素數等差數列。
3、一個偶數可以寫成兩個合數之和,其中每一個合數都最多隻有9個質因數。(挪威數學家布朗,1920年)。
4、一個偶數必定可以寫成一個質數加上一個合成數,其中合數的因子個數有上界。(瑞尼,1948年)。
5、一個偶數必定可以寫成一個質數加上一個最多由5個因子所組成的合成數。後來,有人簡稱這結果為(1+5)(中國潘承洞,1968年)。
6、一個充分大偶數必定可以寫成一個素數加上一個最多由2個質因子所組成的合成數。簡稱為(1+2)。