素因数分解をするプログラムを作ってみましたが、うまく動いてくれませんのです。
http://www.nanoelectronics.jp/kaitai/quantumcom/3.htm
http://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%AF%E3%83%AA%E3%83%83%E3%83%89%E3%81%AE%E4%BA%92%E9%99%A4%E6%B3%95
ここらへんのサイトを参考に作ってみたんですが、どこがいけないんでしょうか?

#include<stdio.h>
#include<stdlib.h>

int gcd(int m,int n);

int main(void)
{
 int a,n,x,f,r,tmp;

 printf("素因数分解したい数を入力してください:"); 
 scanf("%d",&n);

 //1.nより小さいxを適当に選ぶ
 x=rand()%n;

 //2.xとnの最大公約数fを計算する
 f=gcd(n,x);

 if(f!=1){
  printf("素因数は %d です\n",f);
  exit(0);
 }

------- つずく (なぜか変換できない)-------