❶ c語言函數求絕對素數問題
#include<stdio.h>
#include<math.h>
int isPrime(int n)
{
int i,k;
k=(int)sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)
return 0;//如果有一個可以出盡,直接返回0,表示不為素數
return n;//能到這一步說明是素數,直接返回改值
}
void absPrimeTens()
{
int x,y,i,j;
for(i=10;i<100;i++)//兩位數不包含100,改為i<100
{
x=isPrime(i);
if(x)//表示x不為零,即是素數
{
j=10*(x%10)+x/10;
y=isPrime(j);
if(y>=10 && y<100)//兩位數不包含100,改為i<100
printf("%d ",x);
}
}
printf("\n");
}
void main()
{
absPrimeTens();
}
❷ C語言《絕對素數》
//這個程序和求絕對素數有關系嗎?又是排序,又是merger的,沒看出和題目有什麼關系 。
//下面的程序是 我按要求寫的。
#include<stdio.h>
int prime(int n)
{
int i;
for(i=2;i<n;i++)
{
if(n%i == 0)
return 0;
}
return 1;
}
int inv(int n)
{
int re=0;
while(n!=0)
{
re = re*10+n%10;
n = n/10;
}
return re;
}
int main()
{
int i;
for(i=10;i<1000;i++)
{
if(prime(i) && prime(inv(i)))
{
printf("%d ",i);
}
}
getchar();
return 0;
}
❸ C語言求2位數中的絕對素數
你好! 以下程序通過測試. 有問題請追問!
#include "stdio.h"
#include "math.h"bool isprime(int Number) //判斷是否是素數, 是的話返回真. 不是返回假.
{
int i;
for(i =2; i<sqrt(Number); i++)
if(Number%i==0) break; return i>sqrt(Number) ? true : false;
}void main()
{
int n;
for(n=11;n<100;n+=2) //由於偶數不可能是素數. 所以每次的步長+2.一直判斷奇數
if(isprime(n)) //首先判斷n是否是素數.
{
if(isprime((n%10)*10+n/10)) //是的話將n的數字位置調換後判斷是否仍然是素數.
printf("%d\t",n); //是就輸出.
}
printf("\n");
} 附圖:
❹ c語言怎麼求素數
在C語言中求素數有很多種方法。剛入門的話,最基本的就是根據素數的定義來判斷一個數是不是素數。要判斷一個數n是不是素數,就用一個循環,從2一直到n -1,如果都不能整除n,那麼n就是一個素數,否則就不是素數。
改進一點的方法就是只要判斷到n/2就可以了。再高效一點的辦法,就只要判斷到根號n就可以了。判斷的依據是相同的。
❺ c語言。。求絕對素數。。求大神指點
void main()
{
int i,a,c,str1[96];
int d, z, b;
for(i=4;i<=99;i++)
str1[i-4]=i;
//for循環減少運算次數
for(i=0;i<96;i++)
{
d=(int)sqrt(str1[i]);
for(a=2;a<=d;a++)
{
if(str1[i]%a==0)
break;
}
if(a>d)//原程序此if位置錯了,前面的for是處理一個數,處理完了才應該做判斷
{
z= str1[i]%10*10 + str1[i]/10;;
b=(int)sqrt(z);
for(c=2;c<=b;c++)
{
if(z%c==0)
break;
}
if(c>b)//同上
printf("%d\n",str1[i]);
}
}
}
❻ 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);
}
}
❼ c語言求素數的演算法
根據素數的性質,代碼設計如下:
設計一:判斷n是否能被1~n-1整除,不能整除為素數
#include<stdio.h>
int main()
{
int i, n;
scanf("%d", &n);
for (i = 2; i < n ; i++)
{
if (n%i == 0)
break;
}
if (i < n) printf("This is not a prime.");
else printf("This is a prime.");
return 0;
}
設計二:判斷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;
}
(7)C語言用指針求絕對素數擴展閱讀:
1.素數的定義是只能被1和他本身整除,1不是素數.因此要判斷一個數是否為素數.就要判斷它能不能被比他小的所有素數整除,這是一個演算法.(寫到演算法時,我只能寫出用它除以比他小的所有數,造成運算速度低下)
2.如果一個質數大於根號n,而n可以除盡它,那麼n必然也可以除盡一個更小的質數。由此可以得到一個法2較快的素數判斷演算法
❽ C語言求絕對素數
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intprime(intn){
inti;
if(!(n&1))return0;
for(i=3;i*i<=n;i+=2)
if(!(n%i))return0;
return1;
}
intinv(intn){
intx=0;
while(n){
(x*=10)+=n%10;
n/=10;
}
returnx;
}
intmain(void){
intm,n,i;
while(1){
printf("Inputm&n(11<=m<n<=1000)... ");
if(scanf("%d%d",&m,&n),m>10&&m<n&&n<=1000)
break;
printf("Error,redo:");
}
printf("Between%dand%: ",m,n);
for(i=m+!(m&1);i<=n;i+=2)
if(prime(i)&&prime(inv(i)))
printf("%4d",i);
printf(" ");
return0;
}
❾ 求解用C語言判斷一個兩位數是否是絕對素數
for(i=2;i<n;i++)
{
if(n%i == 0)
break;
}
if(i==n)
printf("Yes\n");
else
printf("No\n");