密码学求素数及素数分解
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
密码学求素数及素数分解 求素数 #include #include IsPrime(int value ) { int i; /* if(value ==1) return 0;*/ for(i=2;i<=sqrt(value);i++) { if(value %i==0) return 0; } return 1; } void main() { int n; for(n=1;n<=200;n++) { if(IsPrime(n)) printf("%d is a prime!\n",n); else printf("%d is not a prime!\n",n); } } O(n) 2、将整数分解成素数相乘 #include #include //判读是否为质数,并带回它的最小因数(除1之外)。 int IsPrime(int value) { int i; for (i=2;i {
if ((value%i)==0)
return 0; }
return 1; }
//递归调用,如果为质数则打印出来,否则将该数除以它的最小因数(除1之外)后递归调用
void PrimeSubmultiple(int value) {
int submultiple;
if (IsPrime(value,&submultiple)) {
printf("%d",value); return; } else {
printf("%d*",submultiple);
PrimeSubmultiple(value/submultiple); return; } }
int main() {
int x;
printf("\nPlease input a integar:"); scanf("%d",&x); printf("%d=",x);
PrimeSubmultiple(x);
} O(n)
本文来源:https://www.wddqw.com/doc/b78af62815fc700abb68a98271fe910ef12dae8a.html