⑴ 用c語言判斷一個數是否為素數
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int Judge(int x)
{
while(x>1)
{
for(int i=2;i<=sqrt(x);i++)
if(x%i==0)
return 0;
return 1;
}
if(x<=1)
return 0;
}
main()
{
int x;
printf("請輸入一個數:");
scanf("%d",&x);
switch(Judge(x))
{
case 0: printf("\n%d不是素數",x);break;
case 1: printf("\n%d是素數",x);break;
}
system("pause");
}
⑵ C語言中怎麼判斷一個數是否是素數
設置一個循環,用一個2至這個數的平方根(取較大整數)數去除這個數,不存在任意一數可整除,則這個數就是素數,否則不是。如:
for(i=2;i*i<=n;i++)
if(n%i==0)
break;
if(i*i>=n)
printf("%d是素數 ",n);
else
printf("%d不是素數 ",n);
⑶ 用C語言怎樣判斷一個自然數為素數
//判斷一個數是否為素數
#if
0
#include<stdio.h>
#include<math.h>
int
main()
{
int
i=2,n,k;
printf("Enter
n:\n");
scanf("%d",&n);
k=sqrt(n)+1;
for(i=2;i<=k;i++)
{
if(n%i==0)
break;
if(i>=k)
printf("%d
is
prime
number\n",n);
esle
printf("%d
is
not
prime
munber\n",n);
}
}
#endif
這是我以前上機運行過的,你可以看一下,還有跟這相關的,你也可以看一下。
//輸出2-100之間的所有素數,(質數)
#if
0
#include<stdio.h>
int
main()
{
int
i,n,t=0;
for(n=2;n<=100;n++)
{
i=2;
while(i<n
&&
n%i
!=0)
i++;
if(i==n)
{
printf("%d\t",n);
//注意\t
t++;
if(t%8==0)
printf("\n");
}
}
}
#endif
//統計整型數組a中素數的個數
#if
0
#include<stdio.h>
int
a[10]={1,2,3,4,5,6,7,8,9,10};
int
isprime(int
m)
{
int
i;
for(i=2;i<m/2;i++)
if(m%i==0)
return
0;
return
1;
//如果不是素數,返回0,返回1
}
main()
{
int
num_prime=0;
int
i;
for(i=0;i<10;i++)
if(isprime(a[i]))
{
num_prime++;
printf("a[%d]",i);
printf("%-8d",a[i]);
}
printf("\n
prime
number:%d\n",num_prime);
}
#endif
運行的時候把#if0
和#endif
去掉,你可以試試啊
⑷ c語言:判斷一個數是否為素數
經過vc調試了。如有不懂得地方可以在問我。
#include <stdio.h>
#include <math.h>
int prime(int n)
{
int i;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)break;
if(i>sqrt(n))return 1;
else return 0;
}
void main()
{
int n;
printf("Input a number:");
scanf("%d",&n);
if(prime(n))printf("Yes\n");
else printf("No\n");
}
⑸ 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。
(5)怎麼判斷一個數為素數c語言擴展閱讀:
素數定理:
1、在一個大於1的數a和它的2倍之間(即區間(a,2a]中)必存在至少一個素數。
2、存在任意長度的素數等差數列。
3、一個偶數可以寫成兩個合數之和,其中每一個合數都最多隻有9個質因數。(挪威數學家布朗,1920年)。
4、一個偶數必定可以寫成一個質數加上一個合成數,其中合數的因子個數有上界。(瑞尼,1948年)。
5、一個偶數必定可以寫成一個質數加上一個最多由5個因子所組成的合成數。後來,有人簡稱這結果為(1+5)(中國潘承洞,1968年)。
6、一個充分大偶數必定可以寫成一個素數加上一個最多由2個質因子所組成的合成數。簡稱為(1+2)。
⑹ 求C語言編程,判斷一個數是不是素數
判斷一個數是否是素數
#include "math.h"
int su(long x)
{
int i;
if(x%2==0) return 0;
else
for(i=3;i<sqrt(x);i+=2)
if(x%i==0) return 0;
return 1;
}
判斷素數,若是就返回1,否則就返回0,先看能不能被2整出,若整除肯定不是素數,如不整除就看它能不能被3,5,7,9。。。一直到sprt(x),整除。若整除就不是素數
⑺ 如何用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語言
#include<stdio.h>
intprime(intn){
inti=0;
if(n==0||n==1)return0;
for(i=2;i*i<=n;i++){
if(n%i==0)return0;
}
return1;
}
intmain(){
intn;
printf("請輸入一個整數:");
scanf("%d",&n);
if(prime(n))printf("%d是一個素數!",n);
elseprintf("%d不是一個素數!",n);
return0;
}
⑼ C語言中判斷一個數是否為素數
f是一個標記,當他的值為1時,說明他能被某個不為1和它本身的數整除,也就是說你輸入的數不是素數,
至於那個i<=k和i>=k+1,如果你輸入的那個數M一直都不能被從2到sqrt(m)整除時,經過循環後i=K+1,就滿足i>=k+1,如果你輸入的數M能被從2到sqrt(m)的某個數整除時,i就不會>=k+1
⑽ c語言,如何判斷素數
break跳出的是離它最近的一個for循環,
break後面還要加 if(j>half)的內容是用來計算素數個數和素數和的,後面的計算沒有用到half,只是用來判斷的條件。