❶ 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");