『壹』 c語言 判斷是否為質數
最常用的方法是循環,用要判斷的數去除以2到那個數減一,如果存在取余為0的,證明不是質數,判定可以加上布爾函數,存在為1.
『貳』 用C語言.判斷100以內的質數用IF語句
我對孫經琛同志的程序做了修改:
#include <stdio.h>
void main()
{
int i,k,t=0,sum=0;
int c,a[100];
c=1;
for (i=1;i<=100;i++) /*設定范圍100以內*/
{
for(k=1;k<=i;k++) /*從1查到當前所判斷的數*/
{
if (i%k==0 && k!=1 && i!=k) c=0; /*如果已經不滿足素數條件,則將標志轉0*/
}
if (c!=0) {a[t]=i;t++;} /*如果標志為1,則該質數保存入數組*/
c=1; /*初始化標志*/
}
for(i=0;i<t;i++)
printf("%d\n",a[i]);
getchar();
}
『叄』 C語言判斷一個數是否是質數
根據質數的定義,在判斷一個數n是否是質數時,只要用1至n-1去除n,看看能否整除即可。
還有更好的辦法:先找一個數m,使m的平方大於n,再用小於等於m的質數去除n(n為被除數),如果都不能整除,則n必然是質數。如我們要判斷1993是不是質數,50*50>1993,那麼只要用1993除以<50的質數看是否能整除,若不能即為質數。100以內的質數有25個,還是比較好記的,只要記熟100以內質數,就可以快速判斷10000以內的數是不是質數。
100以內的質數有2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97,在100內共有25個質數。
只有1和它本身兩個因數的自然數,叫質數(或稱素數)。(如:由2÷1=2,2÷2=1,可知2的因數只有1和它本身2這兩個約數,所以2就是質數。與之相對立的是合數:「除了1和它本身兩個因數外,還有其它因數的數,叫合數。」如:4÷1=4,4÷2=2,4÷4=1,很顯然,4的因數除了1和它本身4這兩個因數以外,還有因數2,所以4是合數。)
『肆』 c語言中如何判斷一個數是否是質數
判斷一個數是否是質數在於看這個數字是否只能被1和它本身所整除的整數。但是有一個例外,1不屬於質數。
『伍』 用c語言編寫一個程序,判斷輸入的數是否是素數(質數)。
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,n,flag;
int num;
/* 判斷輸入的數是否是素數 */
printf("請輸入一個正整數:");
scanf("%d", &num);
for(i=2,flag=1; i<=(int)sqrt(num);i++)
{
if(num % i ==0)
{
flag=0;
break;
}
}
if(flag==1)
printf("%d 是一個素數。\n\n", num);
else
printf("%d 不是一個素數。\n\n", num);
/* 列出2~1000之間個位數是3或7的素數 */
printf("2~1000之間個位數是3或7的素數:\n");
for(i=2; i<1000;i++)
{
for(j=2,flag=1; j<=(int)sqrt(i); j++)
if(i%j==0)
{
flag=0;
break;
}
if(flag==1 && (i%10==3 || i%10==7))
printf("%d\t",i);
}
/* 輸出10個2~1000之間個位數是3或7的素數 */
printf("\n\n2~1000之間個位數是3或7的素數:\n");
for(i=2,n=0; i<1000;i++)
{
for(j=2,flag=1; j<=(int)sqrt(i); j++)
if(i%j==0)
{
flag=0;
break;
}
if(flag==1 && (i%10==3 || i%10==7))
{
n++;
if(n<=10)
printf("%d\t",i);
}
if(n>10)
break;
}
return 0;
}
『陸』 如何用c語言編寫出判斷一個數是否為質數的程序
新建一個Win32 Console Application,創建一個Hello World!程序,把如下代碼粘進去運行。
#include "stdafx.h"
#include <stdio.h>
void main()
{
int a,k=0;
printf("請輸入大於1的正整數:");
scanf("%d",&a);
for(int i=2;i<a;i++)
if(a%i==0) {k=1;break;}
if(k) printf("%d不是質數!可以被%d整除!\n",a,i);
else printf("%d是質數!\n",a);
}
『柒』 C語言編程:判斷某數是否是質數
#include<stdio.h>
int main(int argc,int argv[]){
int a,flag;
scanf("%d",&a);/*輸入一個數進行判斷是否是質數*/
int isprime(int);/*這里是對將要調用的函數聲明一下*/
flag=isprime(int);
if(flag==1) printf("%d is isprime",a);
printf("%d is not isprime",a):
return 1;/*這里的語句代表調用函數成功*/
}
int isprime(int a){ /*功能函數,判斷是否是素數*/
int i;
for(i=2;i<=a/2;i++)
if(a%i==0) return 0;/*只要有一次相除為0,馬上就能判斷不是素數*/
return 1;/*否則經過循環之後,都沒有相除為0呢,就說明一定是素數了*/
}
看到這里是不是有點疑惑了呢?我到網路查了一下,質數也稱素數,你注意看就好。。不懂再追問。。
不過我想你看完之後你應該能明的了,我已經寫得好詳細了啦。。。。
『捌』 c語言編程 判斷一個數是否為質數
邏輯判斷有問題。
if(a%n==0){
//說明已經有可以整除的數,已經不是質數了,所以可以利用break;直接跳出
}else{
//假設a是9,那麼9%2肯定不為0啊,那麼9就不是質數啦?
}
改成以下
for(n=2;n<a;n++){
if(a%n==0){
printf("no");
break;
}
}
if(n>=a){
//如果a是質數的話,說明沒有利用break跳出循環,那麼結束循環時n的值為a,如此可以判斷還未有數可以讓a整除的
printf("yes");
}
『玖』 c語言入門編程題 判斷一個數是否為質數
#include<stdio.h>
#include<math.h>
int
main()
{
int
x,i=2,n;
//double
k=sqrt(x);
//----------錯誤
double
k;
printf("請輸入一個正整數x:");
scanf("%d",&x);
//修改
k=sqrt(x);
if(x==1)
printf("該數不是質數.\n");
else
{
while(i<=(int)k)
{
n=x%i;
if(n==0)
//
printf("該數不是質數.\n");
//
------------------------錯誤
{
printf("該數不是質數.\n");
break;
}
/*else
i=i++;
*/
//-------錯誤
i++;
}
//printf("該數為質數.\n");
//----------------------------錯誤
if(i>(int)k)printf("該數為質數.\n");
}
return
0;
}